¿Cómo utilizar el indicador --ignore-non-existing de rsync?

¿Cómo utilizar el indicador --ignore-non-existing de rsync?

Quiero mantener dos directorios "sincronizados" de modo que la versión local contenga solo unsubconjuntode la versión remota. Por lo tanto, sincronizarlos debería dar como resultado que cualquier cambio en el subconjunto local se envíe al directorio remoto y que cualquier cambio en el directorio remoto que se realice en el subconjunto relevante se introduzca en el directorio local. Sin embargo, no quiero que se extraigan archivos o directorios nuevos del directorio remoto sin que se copien explícitamente.

(La razón por la que quiero hacer esto es porque tengo una colección de música muy grande en un servidor remoto, pero no puedo guardar toda la colección en mi computadora portátil a la vez por falta de espacio en el disco. Sin embargo, me gustaría conservar lo que sea parte de la colección, que tengo aquí localmente, sincronizada con la parte relevante en el servidor, particularmente para los casos en los que he actualizado etiquetas ID3, comentarios Vorbis, etc.)

La bandera de rsync --ignore-non-existingparecía una forma razonable de hacer esto, según su documentación en la página de manual, pero no produjo los resultados esperados. Salta el primer nivel de subdirectorios, aunque ambos directorios raíz contengan los mismos hijos.

Por ejemplo, si el directorio remoto example.org:/path/to/it/contiene dir1y dir2y el directorio local /other/dir/contiene dir1y dir2, obtengo los siguientes resultados...

$ rsync --dry-run --ignore-non-existing example.org:/path/to/it/ /other/dir/
skipping directory .

O intentarlo con un comodín...

$ rsync --dry-run --ignore-non-existing example.org:/path/to/it/* /other/dir/
skipping directory dir1
skipping directory dir2

¿Alguien sabe cómo utilizar correctamente esta bandera? ¿O estoy entendiendo mal su propósito? O, si tiene alguna otra sugerencia para mantener sincronizado un subconjunto de un directorio, hágamelo saber.

Gracias. :)

Respuesta1

Intenta hacerlo de forma recursiva:
rsync --recursive --dry-run --ignore-non-existing example.org:/path/to/it/ /other/dir/

información relacionada