Seu comando não estava funcionando porque, quando você estava usando /var/www/*
como fonte, seu shell está exibindo um brilho nele, ou seja, o shell está se expandindo *
para todos os arquivos desse diretório e copiando os arquivos um por um, então aqui os arquivos individuais se tornaram as fontes em vez de o diretório pai.
Então, se você usar /var/www/*
, não precisará da --recursive
opção, pois *
fará com que os arquivos sejam copiados (junto com os diretórios com seu conteúdo), não o diretório pai que contém os arquivos. Pelo mesmo motivo, --delete
não está funcionando, pois --delete
removerá os arquivos do diretório de destino que não estão no diretório de origem , mas você está copiando os arquivos para que não os remova (como esperado).
Isso tornará você mais claro:
/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
Como você pode ver, eu usei a fonte, /foo/*
portanto, o rsync
comando que está sendo executado é
rsync -avz --ignore-existing --recursive --delete /foo/egg
/foo/spam /foo/test /bar/
com *
fazer shell para expandi-lo e criar todos os arquivos individualmente como argumentos de origem, não o diretório pai como um todo (e você também não precisa --recursive
neste caso).
Portanto, se você quiser fazer o --delete
trabalho, execute-o como:
rsync -avz --ignore-existing --recursive --delete
/var/www/ root@mydomaintest.com:/var/www/