Su comando no funcionaba porque cuando lo usaba /var/www/*
como fuente, su shell realizaba un bloqueo global, es decir, la shell se expandía *
a todos los archivos en ese directorio y copiaba los archivos uno por uno, por lo que aquí los archivos individuales se han convertido en las fuentes en lugar de el directorio padre
Entonces, si lo usa /var/www/*
, entonces no necesita la --recursive
opción, ya que *
hará que los archivos se copien (junto con cualquier directorio con su contenido), no el directorio principal que contiene los archivos. Debido a la misma razón --delete
no funciona, ya --delete
que eliminará los archivos del directorio de destino que no están en el directorio de origen , pero está copiando archivos para que no se eliminen los archivos (se espera).
Esto te hará más 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 puede ver, he usado la fuente, /foo/*
por lo tanto, el rsync
comando que se ejecuta es
rsync -avz --ignore-existing --recursive --delete /foo/egg
/foo/spam /foo/test /bar/
con *
hacer shell para expandirlo y crear todos los archivos individualmente como argumentos de origen, no el directorio padre en su conjunto (y tampoco es necesario --recursive
en este caso).
Entonces, si quieres hacer el --delete
trabajo, ejecútalo como:
rsync -avz --ignore-existing --recursive --delete
/var/www/ root@mydomaintest.com:/var/www/