Non ha bisogno di essere fatto da rsync, ma sarebbe bello non dover scrivere una sceneggiatura per farlo, ed rsyncè molto vicino a quello che voglio.
rsync -a(o -l) può preservare i collegamenti simbolici e -Lpuò dereferenziare i collegamenti simbolici e copiarlo come se fosse un normale file / dir. Tuttavia, è possibile mantenere il collegamento simbolico e anche copiare i file / directory a cui puntano i collegamenti?
Ecco un esempio Supponiamo di avere questa gerarchia di cartelle:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirB/not_this_file
dirC/file
dirC/file2
dirD/others
e quando lo faccio rsync -aR dirA dest(o qualcos'altro), vorrei che questi appaiano esattamente in dest:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirC/file
dirC/file2
È possibile con rsync? Grazie.
Supponiamo che i collegamenti simbolici con percorso assoluto o che puntano all'esterno della directory di origine possano essere ignorati.
a -> b, b -> c/foo, c -> d/e: una richiesta di copia adovrebbe anche copiare b, c, c/foo, d, d/ee d/e/foo).
dirA/linktratta di un collegamento simbolico a../dirB/file, questo dovrebbe essere gestito come copiadirB/filedadest/dirB/fileedirA/linkversodest/dirA/link. E sedirA/linkfosse un link a../../another_file? Cosa succede, in generale, sedirA/linkpunta a una directory che si trova più in alto nella struttura di directory?