GNU/Linux >> Linux Esercitazione >  >> Linux

cp -L contro cp -H

Con i collegamenti simbolici, gli strumenti possono fare due cose:

  1. Tratta il collegamento simbolico come un collegamento simbolico ("preservando la sua natura"), o
  2. Tratta il collegamento simbolico come il tipo di file a cui punta.

Dicendo che -H "preserva la sua natura" non è una contraddizione. Considera l'alternativa. Se usi -L , qualsiasi collegamento simbolico cp find verranno aperti e il loro contenuto copiato nel nome del file di destinazione. Quindi la fonte era un collegamento simbolico, ma la sua copia non è un collegamento simbolico. Quindi "ha perso la sua natura di collegamento simbolico".

Considera

$ 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 differenza di comportamento tra -L e -H arriva quando -r è specificato pure. cp non creerà collegamenti simbolici nelle sottodirectory con -L -r ma lo farà se usi -H -r .


Linux
  1. Contare le righe in un file?

  2. C fopen vs open

  3. Scrivere su file .txt?

  4. Cos'è un file .so.2?

  5. Cos'è un file .so?

Comando coda di Linux

Comando touch di Linux

Comando Cat in Linux

Editor VIM

Rotazione del file di registro

Cos'è un file .sh?