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.

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?a -> b,b -> c/foo,c -> d/e: una petición de copiaatambién debe copiarb`c`c/foo`d`d/eyd/e/foo).Respuestas:
Si conoce el nombre del enlace simbólico y desea transferir el enlace y el destino , puede:
Las primeras
rsynctransferencias solo elsymlink. El segundo comando encuentra el nombre real del directorio y el segundorsynctransfiere el contenido del directorio.fuente
Esto sería posible si y solo si estos estuvieran todos en 'mydir' y estuvieran en rsync 'mydir' de un lugar a otro. Rsync no es capaz de copiar fuera de la ruta que le das (con la excepción de los siguientes enlaces). p.ej
fuente