GNU/Linux >> Znalost Linux >  >> Linux

cp-L vs. cp-H

Pomocí symbolických odkazů mohou nástroje dělat dvě věci:

  1. Zacházejte se symbolickým odkazem jako se symbolickým odkazem („zachování jeho povahy“), nebo
  2. Zacházejte se symbolickým odkazem jako s typem souboru, na který odkazuje.

Řekněme, že -H "zachovává svou povahu" není rozpor. Zvažte alternativu. Pokud použijete -L , všechny symbolické odkazy cp nálezy se otevřou a jejich obsah se zkopíruje do názvu cílového souboru. Zdroj byl tedy symbolický odkaz, ale jeho kopie symbolickým odkazem není. Takže to "ztratilo svou povahu jako symbolický odkaz".

Zvažte

$ 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  

Rozdíl v chování mezi -L a -H nastane, když -r je také specifikováno. cp nevytvoří symbolické odkazy v podadresářích s -L -r ale bude, pokud použijete -H -r .


Linux
  1. Pořadí přesměrování?

  2. Linux – všechno je soubor?

  3. Jak grep \nv souboru

  1. Třídit část souboru?

  2. Počítat řádky v souboru?

  3. Obnovit smazaný soubor??

  1. C fopen vs open

  2. Zapsat do souboru .txt?

  3. Co je soubor .so.2?