-
"Copier les liens symboliques en tant que liens symboliques" signifie exactement ce qu'il dit :si rsync voit un lien symbolique dans le répertoire source, il créera un lien symbolique identique dans la destination. Rien de plus.
(Quelques lignes plus bas dans la page de manuel, un différent option,
--copy-links
, décrit le comportement opposé (toujours copier les données) que vous avez qualifié d'indésirable.)Voir aussi la rubrique "Liens symboliques":
Si
--links
est spécifié, les liens symboliques sont recréés avec la même cible sur la destination. -
Ce n'est pas le comportement que vous voulez parce que vous interprétez mal ce que
--links
fait et donc demander le mauvais comportement (voir réponse #1). -
Par défaut, il copie la destination exactement.
Autrement dit, si le lien pointait vers un chemin absolu (par exemple,
/home/me/projects
), il continuera à pointer vers le même chemin ; il ne cassera pas , il continuera simplement à pointer vers un fichier de votre répertoire personnel plutôt que vers celui de votre sauvegarde.Pendant ce temps, si le lien pointe vers un chemin relatif (par exemple
../../projects
), ce sera aussi continuez à pointer vers le même chemin, mais comme il est relatif à l'emplacement du lien symbolique, le lien symbolique de votre sauvegarde pointera également vers un fichier de votre sauvegarde.Malheureusement, il ne semble pas y avoir d'option pour traduire les liens symboliques absolus pour leur nouvelle base (seulement une option pour les casser entièrement). Pour éviter les problèmes, vous devez remplacer les liens symboliques existants par des liens relatifs (ce qui est généralement une bonne idée pour les liens à l'intérieur de $HOME).
@grawity a une excellente réponse, mais voici une capture d'écran de quelques informations pertinentes de la documentation. Voici le libellé exact du -l
et -L
options, par exemple, qui semblent être les plus pertinentes en question :
Source :https://linux.die.net/man/1/rsync ou man rsync
pages de manuel sur Linux.
Notez également que le -a
(--archive
) inclut également le -l
option à l'intérieur, ce qui est génial, car j'aime vraiment utiliser le -l
option pour conserver mes liens symboliques de la source en tant que liens symboliques sur la destination. À partir des pages de manuel :
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
Remarque, pour mon rsync
préféré commandes et instructions, y compris la copie, la mise en miroir, l'affichage de la progression totale...
... faire des simulations, enregistrer stderr et stdout dans des fichiers (séparés), afficher des statistiques, utiliser un fichier de chemin inclus et un fichier d'exclusion , etc., voir ma réponse complète ici sous la 2ème section, intitulée "2. Outil de ligne de commande rsync (Linux, Windows avec Cygwin) " :https://superuser.com/a/1464264/425838