No es necesario que lo haga rsync, pero sería bueno no tener que escribir un guión para hacer esto, y rsyncestá muy cerca de lo que quiero.
rsync -a(o -l) puede preservar los enlaces simbólicos, y -Lpuede desreferenciar los enlaces simbólicos y copiarlos como si fuera un archivo / directorio normal. Sin embargo, ¿es posible mantener el enlace simbólico y también copiar los archivos / directorios a los que apuntan los enlaces?
Aquí hay un ejemplo. Digamos que tenemos esta jerarquía de carpetas:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirB/not_this_file
dirC/file
dirC/file2
dirD/others
y cuando lo hago rsync -aR dirA dest(o algo más), me gustaría que aparezcan exactamente estos en dest:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirC/file
dirC/file2
¿Es esto posible con rsync? Gracias.
Supongamos que se pueden ignorar los enlaces simbólicos que tienen una ruta absoluta o que apuntan fuera del directorio de origen.
a -> b, b -> c/foo, c -> d/e: una petición de copia atambién debe copiar b` c` c/foo` d` d/ey d/e/foo).
dirA/linktrata de un enlace simbólico a../dirB/file, entonces esto debe manejarse como copiandodirB/fileadest/dirB/fileydirA/linkhaciadest/dirA/link. ¿Qué pasa sidirA/linkhay un enlace../../another_file? ¿Qué sucede, en general, sidirA/linkapunta a un directorio que está más arriba en el árbol de directorios?