ไม่สามารถเปลี่ยนปลายทางของลิงก์สัญลักษณ์


21

ฉันต้องการเปลี่ยนปลายทางของลิงก์สัญลักษณ์ที่มีอยู่โดยไม่ต้องลบลิงก์หรือปลายทางเก่า

ก่อนหน้านี้ฉันได้สร้างลิงก์สัญลักษณ์ไปยังไดเรกทอรีเช่น:

$ cd /usr/lib/jvm/

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:22  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07

$ sudo ln -s jdk1.7.0_04 oracle-jdk-7

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:22  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07
lrwxrwxrwx 1 root root   12 May 11 11:27  oracle-jdk-7 -> jdk1.7.0_04/

ตอนนี้ฉันต้องการเปลี่ยนสิ่งนี้เพื่อเชื่อมโยงไปยังไดเรกทอรีอื่น:

$ sudo ln --force -s jdk1.7.0_07 oracle-jdk-7

แต่มันไม่ทำงานโดยไม่มีข้อผิดพลาด:

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:36  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07
lrwxrwxrwx 1 root root   12 May 11 11:27  oracle-jdk-7 -> jdk1.7.0_04/

ความช่วยเหลือใด ๆ


อาจจะเป็นรายละเอียดเล็ก ๆ sudo ln -s jdk1.7.0_04/ oracle-jdk-7แต่ดูเหมือนว่าคำสั่งที่เกิดขึ้นจริงคุณขับรถเป็น 04หมายเหตุหลังจากที่เฉือน
wjandrea

คำตอบ:


31

หากต้องการสร้างลิงก์สัญลักษณ์ไปยังไดเรกทอรีให้ใช้ตัวเลือก 'n':

ln -sfn DESTINATION_DIRECTORY LINK_NAME
  • DESTINATION_DIRECTORY เป็นชื่อของเป้าหมายลิงก์
  • LINK_NAME เป็นชื่อของลิงค์
  • fตัวเลือกวิธีการที่จะเปลี่ยนการเชื่อมโยงที่มีอยู่ (เช่นลบมันเป็นครั้งแรก)

nตัวเลือกที่เป็นบิตซับซ้อน ฉันเชื่อว่าคำสั่งของคุณอาจสร้างลิงก์ไปยังjdk1.7.0_07ภายในไดเรกทอรีjdk1.7.0_04ผ่านลิงก์oracle-jdk-7แทนที่จะแทนที่ลิงก์ ถ้าเป็นเช่นนั้นคุณควรลบลิงค์เพื่อหลีกเลี่ยงความสับสน


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