Saya mencoba memahami apa cp --preserve=links
tidak ketika digunakan dengan sendirinya, dari pengujian saya tampaknya itu menyalin file normal secara normal dan dereferensi symlink, tetapi sepertinya itu hanya memiliki efek yang sama seperti cp -L ketika digunakan pada satu file.
Apakah itu benar atau ada sesuatu yang saya lewatkan?
Jawaban yang Diterima:
--preserve=links
opsi tidak merujuk ke tautan simbolik, tetapi ke tautan keras. Ia meminta cp
untuk mempertahankan hard link yang ada antara dua atau lebih file yang sedang disalin.
$ date > file1
$ ln file1 file2
$ ls -1i file1 file2
6034008 file1
6034008 file2
Anda dapat melihat bahwa kedua file asli adalah hard-linked dan nomor inodenya adalah 6034008.
$ mkdir dir1
$ cp file1 file2 dir1
$ ls -1i dir1
total 8
6035093 file1
6038175 file2
Sekarang Anda dapat melihat bahwa tanpa --preserve=links
salinan mereka memiliki dua nomor inode yang berbeda:tidak ada lagi hubungan yang erat antara keduanya.
$ mkdir dir2
$ cp --preserve=links file1 file2 dir2
$ ls -1i dir2
total 8
6089617 file1
6089617 file2
Sekarang Anda dapat melihatnya dengan --preserve=links
, kedua salinan masih saling terkait, tetapi nomor inodenya adalah 6089617, yang tidak sama dengan nomor inode file aslinya (berlawanan dengan apa cp --link
akan dilakukan).