Jika penyalinan dilakukan di beberapa terminal shell (yaitu bash), maka cp
dapat secara eksplisit disuruh menyalin file yang ditunjuk oleh tautan --dereference
, alih-alih tautan itu sendiri. Perilaku default cp
adalah menyalin file dengan mengikuti tautan mereka, tetapi banyak browser file grafis tampaknya memiliki perilaku default untuk mencoba menyalin tautan dan umumnya mempertahankan sebagian besar atribut.
man cp
-a, --archive
same as -dR --preserve=all
-d same as --no-dereference --preserve=links
-L, --dereference
always follow symbolic links in SOURCE
Contoh
touch SomeFile.txt
echo "some content" > someFile.txt
ln -s -T someFile.txt someLink
echo "Some content for the test file." > someLink
mkdir someDirectory
ln -s -T someDirectory someDirLink
Fakta bahwa itu someLink
adalah tautan, diperlihatkan oleh l
bendera di posisi pertama dari keluaran daftar (dan `d 'menunjuk direktori).
ls -l
drwxrwxr-x. 2 user group 4096 Aug 17 17:17 someDirectory
lrwxrwxrwx. 1 user group 13 Aug 17 17:17 someDirLink -> someDirectory
-rw-rw-r--. 1 user group 32 Aug 17 17:01 someFile.txt
lrwxrwxrwx. 1 user group 12 Aug 17 17:12 someLink -> someFile.txt
File tersebut berisi konten, dan tautannya menunjuk ke file tersebut, tetapi dapat digunakan dengan cara apa pun yang bisa dilakukan oleh file tersebut. (Perhatikan ukuran file tautan vs ukuran file teks: 32 Bytes vs 12 Bytes.)
cat someFile.txt
Some content for the test file.
cat someLink
Some content for the test file.
Pertama, menyalin tautan ke direktori. Kemudian menyalin file ke direktori, melalui tautan. (Di bawah ini juga menunjukkan bahwa tautan direktori berfungsi dengan cara yang mirip dengan tautan file.):
cp -a someLink someDirLink/newCopy
cp -L someLink someDirectory/newCopy.txt
ll -l someDirLink/
lrwxrwxrwx. 1 user group 12 Aug 17 17:12 newCopy -> someFile.txt
-rw-rw-r--. 1 user group 32 Aug 17 17:36 newCopy.txt
Peringatan
Tautan dapat dibuat untuk menunjuk ke jalur penuh atau jalur relatif. Karena contoh ini menggunakan tautan yang didasarkan pada jalur relatif target yang berada di direktori yang sama dengan tautan yang dibuat, tautan tersebut terputus ketika disalin ke direktori baru.
cat someDirLink/newCopy
cat: someDirLink/newCopy: No such file or directory
cat someDirLink/newCopy.txt
Some content for the test file.