Cela n'a pas besoin d'être fait par rsync
, mais ce serait bien de ne pas avoir à écrire de script pour le faire, et rsync
c'est très proche de ce que je veux.
rsync -a
(ou -l
) peut conserver les liens symboliques, et -L
déréférencer les liens symboliques et les copier comme s'il s'agissait d'un fichier / répertoire normal. Cependant, est-il possible de conserver le lien symbolique et de copier également les fichiers / répertoires vers lesquels les liens pointent?
Voici un exemple. Disons que nous avons cette hiérarchie de dossiers:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirB/not_this_file
dirC/file
dirC/file2
dirD/others
et quand je le fais rsync -aR dirA dest
(ou autre chose), je voudrais que ceux-ci apparaissent exactement dans dest
:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirC/file
dirC/file2
Est-ce possible avec rsync
? Je vous remercie.
Supposons que les liens symboliques ayant un chemin absolu ou pointant vers l'extérieur du répertoire source puissent être ignorés.
a -> b
, b -> c/foo
, c -> d/e
: une demande de copie a
doit également copier b
, c
, c/foo
, d
, d/e
et d/e/foo
).
dirA/link
est un lien symbolique vers../dirB/file
, alors cela doit être traité comme une copiedirB/file
versdest/dirB/file
etdirA/link
versdest/dirA/link
. Et sidirA/link
est un lien vers../../another_file
? Que se passe-t-il, en général, sidirA/link
pointe vers un répertoire plus haut dans l'arborescence des répertoires?