Il tuo comando non funzionava perché quando stavi usando /var/www/*
come sorgente, la tua shell stava eseguendo il globbing su di essa, cioè la shell si espandeva *
a tutti i file in quella directory e la copia dei file uno per uno, quindi qui i singoli file sono diventati i sorgenti anziché la directory principale.
Quindi, se lo usi /var/www/*
, non hai bisogno --recursive
dell'opzione poiché *
i file verranno copiati (insieme a tutte le directory con il loro contenuto), non la directory padre che contiene i file. A causa dello stesso motivo --delete
non funziona, in quanto --delete
rimuoverà i file dalla directory di destinazione che non si trovano nella directory di origine , ma si stanno copiando i file in modo che non rimuovano i file (prevedibilmente).
Questo ti renderà più chiaro:
/foo$ ls -l
-rw-rw-r-- 1 user user 0 Apr 16 17:56 egg
-rw-rw-r-- 1 user user 0 Apr 16 17:56 spam
drwxrwxr-x 2 user user 4096 Apr 16 18:14 test
/bar$ ls -l
-rw-rw-r-- 1 user user 0 Apr 16 17:56 egg
-rw-rw-r-- 1 user user 0 Apr 16 18:13 lion
-rw-rw-r-- 1 user user 0 Apr 16 17:56 spam
$ rsync -avz --ignore-existing --recursive --delete
/foo/* /bar/
+ rsync -avz --ignore-existing --recursive --delete
/foo/egg /foo/spam /foo/test /bar/
sending incremental file list
test/
test/hello
sent 173 bytes received 39 bytes 424.00 bytes/sec
total size is 0 speedup is 0.00
/bar$ ls -l
-rw-rw-r-- 1 user user 0 Apr 16 17:56 egg
-rw-rw-r-- 1 user user 0 Apr 16 18:13 lion
-rw-rw-r-- 1 user user 0 Apr 16 17:56 spam
drwxrwxr-x 2 user user 4096 Apr 16 18:14 test
Come puoi vedere, ho usato la fonte in quanto /foo/*
quindi il rsync
comando da eseguire è
rsync -avz --ignore-existing --recursive --delete /foo/egg
/foo/spam /foo/test /bar/
con la *
creazione di shell per espanderlo e creare tutti i file singolarmente come argomenti di origine, non la directory padre nel suo insieme (e anche --recursive
in questo caso non è necessario ).
Quindi, se vuoi far --delete
funzionare, eseguilo come:
rsync -avz --ignore-existing --recursive --delete
/var/www/ root@mydomaintest.com:/var/www/