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 -L
può 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 a
dovrebbe anche copiare b
, c
, c/foo
, d
, d/e
e d/e/foo
).
dirA/link
tratta di un collegamento simbolico a../dirB/file
, questo dovrebbe essere gestito come copiadirB/file
dadest/dirB/file
edirA/link
versodest/dirA/link
. E sedirA/link
fosse un link a../../another_file
? Cosa succede, in generale, sedirA/link
punta a una directory che si trova più in alto nella struttura di directory?