GNU/Linux >> Tutoriels Linux >  >> Linux

cp -L vs cp -H

Avec les liens symboliques, les outils peuvent faire deux choses :

  1. Traiter le lien symbolique comme un lien symbolique ("en préservant sa nature"), ou
  2. Traitez le lien symbolique comme le type de fichier vers lequel il pointe.

Dire que -H "préserve sa nature" n'est pas une contradiction. Considérez l'alternative. Si vous utilisez -L , tous les liens symboliques cp finds seront ouverts et leur contenu copié dans le nom du fichier cible. Ainsi, la source était un lien symbolique, mais sa copie n'est pas un lien symbolique. Il "a donc perdu sa nature de lien symbolique".

Considérez

$ mkdir subdir
$ echo "some contents" > subdir/file
$ ln -s file subdir/link

# definition of "list", the abbreviated ls -l output used below
$ list() { ls -l "[email protected]" | \
    awk '$0 !~ /^total/ { printf "%s %s\t%s %s %s\n", $1, $5, $9, $10, $11 }' ; }

$ list subdir
-rw-rw-r-- 14   file  
lrwxrwxrwx 4    link -> file

$ cp -rH subdir subdir-with-H
$ list subdir-with-H
-rw-rw-r-- 14   file  
lrwxrwxrwx 4    link -> file

$ cp -rL subdir subdir-with-L
$ list subdir-with-L
-rw-rw-r-- 14   file  
-rw-rw-r-- 14   link  

La différence de comportement entre -L et -H vient quand -r est également spécifié. cp ne créera pas de liens symboliques dans les sous-répertoires avec -L -r mais ce sera le cas si vous utilisez -H -r .


Linux
  1. Récupérer un fichier supprimé ? ?

  2. C ouvert vs ouvert

  3. Écrire dans le fichier .txt ?

  4. Qu'est-ce qu'un fichier .so.2 ?

  5. Qu'est-ce qu'un fichier .so ?

Commande Tail Linux

Commande tactile Linux

Commande Cat sous Linux

Éditeur VIM

Rotation des fichiers journaux

Qu'est-ce qu'un fichier .sh ?