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 rsyncc'est très proche de ce que je veux.
rsync -a(ou -l) peut conserver les liens symboliques, et -Ldé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 adoit également copier b, c, c/foo, d, d/eet d/e/foo).
dirA/linkest un lien symbolique vers../dirB/file, alors cela doit être traité comme une copiedirB/fileversdest/dirB/fileetdirA/linkversdest/dirA/link. Et sidirA/linkest un lien vers../../another_file? Que se passe-t-il, en général, sidirA/linkpointe vers un répertoire plus haut dans l'arborescence des répertoires?