Estoy tratando de usar la --deleteopción rsyncpara eliminar archivos en el directorio de destino que no está presente en el directorio original
Aquí está el comando que estoy usando:
rsync -avz --ignore-existing --recursive --delete /var/www/* root@mydomaintest.com:/var/www
Entonces mi pregunta es, ¿cómo puedo eliminar todos los archivos en el directorio de destino que no están presentes en el directorio original?

--recursivees sobreabundante porque la opción-aya lo incluyeSu 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 padreEntonces, si lo usa
/var/www/*, entonces no necesita la--recursiveopció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--deleteno funciona, ya--deleteque 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:
Como puede ver, he usado la fuente,
/foo/*por lo tanto, elrsynccomando que se ejecuta escon
*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--recursiveen este caso).Entonces, si quieres hacer el
--deletetrabajo, ejecútalo como:fuente