ฉันจะคัดลอกลิงก์สัญลักษณ์ได้อย่างไร


41

ฉันมีลิงก์สัญลักษณ์ไปยังไฟล์ในไดเรกทอรีเดียว ฉันต้องการลิงค์เดียวกันในไดเรกทอรีอื่น ฉันจะคัดลอกลิงก์สัญลักษณ์ได้อย่างไร

ฉันพยายาม cp ลิงก์สัญลักษณ์ แต่สิ่งนี้คัดลอกไฟล์ที่ชี้ไปที่แทนที่จะเป็นลิงก์สัญลักษณ์เอง


1
ไม่cpเกี่ยวกับการสนับสนุน CentOS -Pหรือ--no-dereferenceสวิทช์?
จัดการ

@ การผลิต: ขอบคุณมันเพิ่งจะพบว่า หากคุณต้องการโพสต์มันเป็นคำตอบฉันจะยอมรับมัน
ผู้ใช้

คำตอบ:


54

ใช้cp -P(ตัวพิมพ์ใหญ่ P) เพื่อไม่สำรวจลิงก์สัญลักษณ์ใด ๆ และคัดลอกลิงก์สัญลักษณ์แทน

สิ่งนี้สามารถรวมกับตัวเลือกอื่น ๆ เช่น-Rการคัดลอกลำดับชั้นไดเรกทอรี - cp -RLสำรวจลิงก์สัญลักษณ์ทั้งหมดไปยังไดเรกทอรีcp -RPคัดลอกลิงก์สัญลักษณ์ทั้งหมดเช่น cp -Rอาจทำอย่างใดอย่างหนึ่งขึ้นอยู่กับตัวแปรยูนิกซ์; GNU cp(เท่าที่พบใน CentOS) -Pเริ่มต้นที่

แม้ว่า-Pคุณจะสามารถคัดลอกเป้าหมายของลิงก์สัญลักษณ์ไปยังไดเรกทอรีบนบรรทัดคำสั่งโดยเพิ่ม/ที่ท้าย: cp -RP foo/ barคัดลอกแผนผังไดเรกทอรีที่fooชี้ไปที่

GNU cpมีความสะดวกสบาย-aตัวเลือกที่รวม-R, -P, -pและอื่น ๆ เล็ก ๆ น้อย ๆ มันทำสำเนาที่แน่นอนของแหล่งที่มา (เท่าที่จะทำได้), การรักษาลำดับชั้นไดเรกทอรีลิงก์สัญลักษณ์สิทธิ์การเปลี่ยนแปลงครั้งและข้อมูลเมตาอื่น ๆ


3
ระวังว่าเมื่อคัดลอก / ย้ายแล้ว symlink อาจจะเสีย (ถ้าแหล่งที่มาคือ symlink ไปยังเส้นทางสัมพัทธ์)
Stéphane Chazelas

3
มีวิธีการป้องกันการแตก symlink ถ้าคุณย้ายไปยังไดเรกทอรีที่สูงขึ้นหรือต่ำลงหรือไม่
แอนดรูว์บราวน์

ตามหมายเหตุ: "GNU cp" นั้นไม่เหมือนกับที่gcpฉันใช้ gcp -Pปัจจุบันใช้งานไม่ได้แม้ในปี 2019 (ถอนหายใจ)
tgm1024

1

ตรวจสอบคำตอบนี้ได้ที่https://superuser.com/a/315757/53590สำหรับ CentOS โดยเฉพาะสำหรับปัญหา คำถามทั้งหมดอาจช่วยคุณได้ แต่บิตที่ด้านล่างเป็น CentOS โดยเฉพาะ


1
โปรดทราบว่าคนอื่นอาจเลือกคำสั่งที่แตกต่างจากของคุณเพื่อแสดงคำตอบ นอกจากนั้นคำสั่งซื้ออาจมีการเปลี่ยนแปลงตามเวลา กรุณาโพสต์ลิงก์โดยตรงไปยังคำตอบที่อ้างถึง (คลิกที่ลิงค์“ แชร์” ด้านล่างคำตอบนั้นและคัดลอกลิงค์โดยตรงที่ปรากฏ)
จัดการ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.