หากการคัดลอกเสร็จสิ้นในเชลล์เทอร์มินัลบางตัว (เช่น bash) คุณcp
สามารถบอกได้อย่างชัดเจนว่าจะคัดลอกไฟล์ที่ลิงก์ชี้ไปด้วย--dereference
แทนที่จะเป็นลิงก์เอง พฤติกรรมเริ่มต้นของcp
คือการคัดลอกไฟล์โดยทำตามลิงค์ของพวกเขา แต่เบราว์เซอร์ไฟล์กราฟิกจำนวนมากดูเหมือนจะมีพฤติกรรมเริ่มต้นของการพยายามที่จะคัดลอกลิงค์และโดยทั่วไปจะรักษาคุณสมบัติส่วนใหญ่
man cp
-a, --archive
same as -dR --preserve=all
-d same as --no-dereference --preserve=links
-L, --dereference
always follow symbolic links in SOURCE
ตัวอย่าง
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
ความจริงที่ว่าsomeLink
คือการเชื่อมโยงจะแสดงโดยl
ธงในตำแหน่งแรกของการส่งออกรายชื่อ (และ `d 'กำหนดไดเรกทอรี)
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
ไฟล์มีเนื้อหาและลิงก์ชี้ไปที่ไฟล์ แต่สามารถใช้งานได้เกือบจะทุกไฟล์ (โปรดสังเกตขนาดไฟล์ลิงก์เทียบกับขนาดไฟล์ข้อความ: 32 ไบต์เทียบกับ 12 ไบต์)
cat someFile.txt
Some content for the test file.
cat someLink
Some content for the test 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
ความระมัดระวัง
ลิงก์สามารถทำเพื่อชี้ไปยังเส้นทางแบบเต็มหรือเส้นทางสัมพัทธ์ เนื่องจากตัวอย่างนี้ใช้การเชื่อมโยงตามพา ธ สัมพัทธ์ของเป้าหมายที่อยู่ในไดเรกทอรีเดียวกับลิงค์ที่สร้างขึ้นลิงค์จึงขาดเมื่อถูกคัดลอกไปยังไดเรกทอรีใหม่
cat someDirLink/newCopy
cat: someDirLink/newCopy: No such file or directory
cat someDirLink/newCopy.txt
Some content for the test file.