จะแทนที่ลิงก์สัญลักษณ์ด้วยสำเนาของไฟล์ที่ลิงก์ไปยังได้อย่างไร


15

มี symlink (ระบบเดียวที่ไม่ต้องประมวลผลระบบแบตช์) สิ่งที่บรรทัดคำสั่งที่จะใช้เพื่อแทนที่ด้วยสำเนาของไฟล์ที่ลิงก์ไปยัง?

คำตอบ:


16
cp --remove-destination "$(readlink <symlink>)" <symlink>

1
ข้อผิดพลาด "-bash: ข้อผิดพลาดทางไวยากรณ์ใกล้โทเค็น` newline '"ที่ไม่คาดคิดเมื่อเรียกใช้จากสภาพแวดล้อมเดเบียน
Lin Song Yang

ถ้า<symlink>เป็น symlink ไปยังพา ธ สัมพัทธ์มันจะใช้ได้ก็ต่อเมื่อ<symlink>อยู่ในไดเรกทอรีปัจจุบัน readlink -fคุณอาจต้องการที่จะใช้ หรือหากใช้zsh:cp --remove-destination path/to/symlink(:A) path/to/symlink
Stéphane Chazelas

0

คุณสามารถทำได้:

file=path/to/symlink
{ rm -f -- "$file" && cat > "$file"; } < "$file"

(ซึ่งคัดลอกเฉพาะเนื้อหาไม่ใช่ข้อมูลเมตาของไฟล์เช่นสิทธิ์และความเป็นเจ้าของ)

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