จะลบลิงก์สัญลักษณ์ไปยังไดเรกทอรีได้อย่างไร


100

ฉันสร้างลิงก์สัญลักษณ์ด้วยคำสั่งต่อไปนี้:

ln -s ../test5

ฉันต้องการลบออกตอนนี้ แต่ RM ของฉันล้มเหลว:

$ rm -Rf test5/
rm: cannot remove `test5/': Not a directory
$ rm test5/
rm: cannot remove directory `test5/': Is a directory
$ rmdir test5/
rmdir: test5/: Not a directory
$rm -r test5/
rm: cannot remove `test5/': Not a directory

$ls -l
 0 lrwxrwxrwx  1 peter peter    8 Jul 20 15:30 test5 -> ../test5/

ฉันจะลบลิงค์สัญลักษณ์ของฉันได้อย่างไร (Ubuntu 8.10, ทุบตี)


4
เคล็ดลับ: rm -r link/ลบเนื้อหาในเป้าหมาย
Gayan Weerakutti

คำตอบ:


121

ลบเครื่องหมายสแลชต่อท้าย:

ด้วยพรอมต์:

$ rm test5

โดยไม่ต้องแจ้งให้ทราบ:

$ rm -f test5


permission deniedมันบอกว่า
1.21 gigawatts

1
โดยไม่ต้องต่อท้ายทับ ดังนั้นจึงtest5/ไม่ถูกต้อง
pylover

20

ลองrm test5
(โดยไม่ใช้เครื่องหมายทับ)

เครื่องหมายทับแสดงว่า 'test5' เป็นไดเร็คทอรี่ในขณะที่จริง ๆ แล้วเป็นไฟล์ที่เชื่อมโยงไปยังไดเรกทอรี


14

คุณสามารถเรียกใช้การลบเครื่องหมายทับ:

$ rm test5

นี่จะเป็นการลบไฟล์ (เช่น symlink)

หรือคุณอาจใช้การยกเลิกการเชื่อมโยง:

$ unlink test5

คุณต้องละเว้นเครื่องหมายสแลชต่อท้ายเนื่องจากคุณพยายามยกเลิกการเชื่อมโยง symlink ไม่ใช่ไดเรกทอรี


0

บางครั้งหากคุณใช้การเติมข้อความอัตโนมัติเพื่อตั้งชื่อลิงก์ที่คุณต้องการลบคุณอาจไม่เห็นเครื่องหมายทับ แต่เป็น 'ครึ่งทาง' และเครื่องหมายทับที่มองไม่เห็นยังให้ข้อผิดพลาดในการลบเมื่อพยายามลบลิงก์นั้น

ดังนั้นในกรณีที่พิมพ์ตัวละครโดยตัวละครลิงค์ที่จะถูกลบเป็น "test5" เช่น rm test5.


1
ไม่เคยได้ยินเสียงกรีดที่มองไม่เห็น เปลือกนี้ทำอะไร?
Kamil Maciorowski

ฉันคิดว่าอาจอ้างอิงถึงตัวละครที่ถูกซ่อนโดยเคอร์เซอร์ linewrap +?
bertieb

0

ปัญหาใน OP คือการติดตาม/ดังนั้นจึงtest5/เกิดข้อผิดพลาด แต่ใช้test5งานได้

ฉันชอบที่จะใช้unlinkมากกว่าrmที่จะตั้งใจและชัดเจนกว่าและไม่มีโอกาสที่จะลบไดเรกทอรีจริงแทนที่จะเชื่อมโยง ตรวจสอบให้แน่ใจว่าไม่มีการต่อท้าย/หลังจากชื่อไดเรกทอรีเช่น:

unlink test5

-1

ฉันรู้สึกงี่เง่าถาม แต่คุณได้ลองrm -r? เนื่องจากเป็นลิงก์สัญลักษณ์จึงไม่ควรลบเป้าหมาย

แก้ไข: เพิ่งลองมันถูกต้อง

แก้ไข 2: rmdir กล่าวในบรรทัดแรกของ man page มันจะลบไดเรกทอรีว่างเปล่า ฉันคิดว่าเพราะมันเป็นลิงค์มันมีการตรวจสอบบิตไดเรกทอรีในคุณสมบัติของไฟล์ แต่เนื่องจาก rmdir ไม่สงสัยว่าเป็นกรณีที่มันพ่นข้อผิดพลาด เพียงใช้ rm -r


2
นี้จะขอให้ฉันไปลบไฟล์ในไดเรกทอรีนั่นไม่ใช่สิ่งที่ผมต้องการผมต้องการที่จะลบเฉพาะการเชื่อมโยง
ปีเตอร์สมิต

การถามเป็นเพราะการโต้ตอบถูกกำหนดไว้ใน. profile ของฉัน เพิ่มการตอบกลับไปยัง rm -r มันยังไม่ทำงาน
Peter Smit

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