Problème
En copiant des fichiers avec cp -Hou cp -L, j'obtiens les mêmes résultats:
$ ls -l fileA
fileA -> fileB
$ cp fileA somewhere/ -H
$ ls -l somewhere/
fileA # fileA is a copy of fileB, only renamed, with same properties!
Cette réponse décrit ici les deux options comme similaires, sauf si elles étaient utilisées en combinaison avec -R. Pas pour moi. Les fichiers à liaison fixe deviennent des copies renommées des fichiers vers lesquels ils pointent.
Question :
Quel est le bon usage de cp -Het cp -L? Est-ce le comportement attendu?
Ma tentative de résoudre :
man cpme dit tout à fait la même chose pour les deux options, mais info cpde » la formulation rend encore plus déroutant pour moi. Peut-être que l'on peut m'aider à décomposer un peu ceci:
-HSi un argument de ligne de commande spécifie un lien symbolique, copiez le fichier sur lequel il pointe plutôt que le lien symbolique lui - même. Cependant, copiez (en préservant sa nature) tout lien symbolique rencontré lors d'une traversée récursive.
Cela me semble une contradiction: je suppose que «la nature d’un lien symbolique » c’est qu’elle pointe quelque part…
-L, --dereferenceSuivez les liens symboliques lorsque vous les copiez. Avec cette option,cpvous ne pouvez pas créer de lien symbolique. Par exemple, un lien symbolique (vers un fichier normal) dans l'arborescence source sera copié dans un fichier normal dans l'arborescence de destination.
Je sais qu'un lien symbolique n'est pas un fichier ordinaire, mais… j'avoue que je suis dépassé par cette explication ici.
info cpet je me suis efforcé de comprendre la signification du choix des mots pour cette option & ndash; et à propos de cette publication. L’affichage contient également le libellé actuel de info cp- c’est
info cp, cherchez-R. Il ditCopy directories recursively.Mais vous testez avec des non-annuaires. La différence est de ce qui est dans les répertoires que vous copiez, pas les arguments de ligne de commande.