GNU/Linux >> Belajar Linux >  >> Linux

cp -L vs cp -H

Dengan symlink, alat memiliki dua hal yang dapat mereka lakukan:

  1. Perlakukan symlink sebagai symlink ("mempertahankan sifatnya"), atau
  2. Perlakukan symlink sebagai jenis file yang dituju.

Mengatakan bahwa -H "mempertahankan sifatnya" bukanlah sebuah kontradiksi. Pertimbangkan alternatifnya. Jika Anda menggunakan -L , semua symlink cp find akan dibuka, dan isinya disalin ke nama file target. Jadi sumbernya adalah symlink, tetapi salinannya bukan symlink. Jadi itu "kehilangan sifatnya sebagai symlink".

Pertimbangkan

$ 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  

Perbedaan perilaku antara -L dan -H muncul saat -r ditentukan juga. cp tidak akan membuat symlink di subdirektori dengan -L -r tetapi itu akan terjadi jika Anda menggunakan -H -r .


Linux
  1. Urutan Pengalihan?

  2. Urutkan Bagian Dari File?

  3. Hitung Baris Dalam File?

  1. Pulihkan File yang Dihapus??

  2. Cara grep \n dalam file

  3. Apa itu file .so?

  1. Linux – Semuanya Adalah File?

  2. C fopen vs terbuka

  3. Tulis ke file .txt?