ho un semplice script bash prova che si presenta così:script file di vs della riga di comando: rsync e --exclude
#!/bin/bash
cmd="rsync -rv --exclude '*~' ./dir ./new"
$cmd # execute command
Quando eseguo lo script copierà anche i file che terminano con un ~
anche se intendevo escluderli. Quando eseguo lo stesso comando rsync direttamente dalla riga di comando, funziona! Qualcuno sa perché e come far funzionare lo script di bash?
Btw, so che posso anche lavorare con --exclude-from
ma voglio sapere come funziona comunque.
L'ho messo in una variabile per il debug. Ho iniziato senza virgolette singole e questo era ancora peggio (in realtà, è per questo che li ho messi lì) a causa dell'espansione. Per esempio. "rsync -r --exclude * ~ ./dir ./new" espanso a "rsync -r --exclude foo ~ bar ~ foobar.sh ~ ./dir ./new" – Chris
Lo hai provato con le virgolette singole, ma senza metterlo in una variabile (come nella mia seconda raccomandazione)? Dovrebbe funzionare bene (e sembrava quando l'ho provato). –