GNU/Linux >> Tutoriels Linux >  >> Linux

rsync et liens symboliques

  1. "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.

  2. 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).

  3. 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


Linux
  1. Existe-t-il un moyen de vérifier s'il existe des liens symboliques pointant vers un répertoire ?

  2. Git et liens physiques

  3. Comportement de cd/bash sur les liens symboliques

  4. Comment copier des liens symboliques ?

  5. Trop de niveaux de liens symboliques

Comment créer des liens symboliques sous Linux

Comment supprimer (supprimer) des liens symboliques sous Linux

Un moyen simple de lister les liens symboliques sous Linux

Liens symboliques rapides et lents ?

Comment trouver des liens symboliques brisés sous Linux

Comment obtenir une liste de liens symboliques sous Linux