ปัญหา
เมื่อคัดลอกไฟล์ด้วยcp -H
หรือcp -L
ฉันได้ผลลัพธ์เดียวกัน:
$ ls -l fileA
fileA -> fileB
$ cp fileA somewhere/ -H
$ ls -l somewhere/
fileA # fileA is a copy of fileB, only renamed, with same properties!
คำตอบนี้ที่นี่-R
อธิบายตัวเลือกทั้งสองเป็นที่คล้ายกันเว้นแต่ใช้ร่วมกับ ไม่ได้สำหรับฉัน. ซอฟต์ - ไฟล์ฮาร์ดลิงก์จะเปลี่ยนชื่อสำเนาของไฟล์ที่ชี้ไปที่ต้นทาง
คำถาม :
การใช้ที่เหมาะสมคืออะไรcp -H
และcp -L
? นี่เป็นพฤติกรรมที่คาดหวังหรือไม่?
ความพยายามที่จะแก้ปัญหาของฉัน :
man cp
บอกฉันค่อนข้างเหมือนกันสำหรับทั้งสองตัวเลือก แต่info cp
ของถ้อยคำที่ทำให้เกิดความสับสนมากยิ่งขึ้นสำหรับฉัน อาจมีใครสามารถช่วยฉันทำลายสิ่งนี้ลงเล็กน้อย:
-H
หากอาร์กิวเมนต์บรรทัดคำสั่งระบุลิงก์สัญลักษณ์ให้คัดลอกไฟล์ที่ชี้ไปที่แทนที่จะเป็นลิงก์สัญลักษณ์เอง อย่างไรก็ตามคัดลอก (รักษาลักษณะของมัน) ลิงก์สัญลักษณ์ใด ๆที่พบผ่านการวนซ้ำแบบซ้ำ
ดูเหมือนว่าจะขัดแย้งกับฉัน: ฉันเดาว่า " ธรรมชาติของลิงก์สัญลักษณ์ «คือมันชี้ไปที่ใดที่หนึ่ง ...
-L, --dereference
ติดตามลิงก์สัญลักษณ์เมื่อคัดลอกจากพวกเขา ด้วยตัวเลือกนี้cp
ไม่สามารถสร้างลิงก์สัญลักษณ์ ตัวอย่างเช่น symlink (ไปยังไฟล์ปกติ) ในแผนผังต้นไม้จะถูกคัดลอกไปยังไฟล์ปกติในแผนผังปลายทาง
ฉันรู้ว่า symlink ไม่ใช่ไฟล์ปกติ แต่…ฉันยอมรับว่าฉัน overchallenged กับคำอธิบายนี้ที่นี่
info cp
และพยายามอย่างหนักที่จะคิดออกว่าการเลือกคำในตัวเลือกนี้หมายถึง & ndash; และสิ่งที่โพสต์นี้เป็นเรื่องเกี่ยวกับ โพสต์ยังมีข้อความจริงจากinfo cp
- ดังนั้นฉันจะต้องเปิดอย่างน้อยมัน…;)
info cp
-R
มันบอกว่าCopy directories recursively.
แต่คุณกำลังทดสอบกับไม่ใช่ไดเรกทอรี ข้อแตกต่างเกี่ยวกับสิ่งที่อยู่ภายในไดเรกทอรีที่คุณกำลังคัดลอกไม่ใช่อาร์กิวเมนต์บรรทัดคำสั่ง