กำลังลบโฟลเดอร์ชื่อ ~


30

นี่คือผลลัพธ์ของ ls -l

ls -l
total 53484
drwxr-xr-x 3 root root     4096 2011-02-10 05:59 ~
-rw-r--r-- 1 root root 54313810 2011-02-13 05:09 jobs.jar
-rw-r--r-- 1 root root   384035 2011-02-15 05:33 jobsLog.out

ฉันทำไม่ได้rm -rf ~ เพราะจะลบไดเรกทอรีบ้านของฉัน

ฉันควรทำอย่างไร? มันไม่ใช่ปัญหาสำหรับฉัน แต่เป็นเพียงอาการปวดตา


8
ฉันจะหลีกเลี่ยงการเขียนrm -rfสิ่งที่อาจเกิดความล้มเหลวหากคุณพิมพ์ผิด พิจารณาเข้าสู่./~โฟลเดอร์ของคุณและลบเนื้อหาออกจากที่นั่นก่อนที่จะย้ายไดเรกทอรีและเรียกใช้rmdir ./~เพื่อลบไดเรกทอรี ~ ออกไป
adamnfish

คำตอบ:


58

rm -R ./~

ที่จะทำให้มองหา~ในโฟลเดอร์ปัจจุบัน


ว้าว, วิธีดูสิ่งที่ตรง! รุ่งโรจน์!
theTuxRacer

2
คำตอบนี้ถูกต้อง แต่ฉันคิดว่าคำตอบของ Oli นั้นดีกว่าเพราะปลอดภัยกว่า หากคุณพิมพ์คำสั่งนี้เล็กน้อยคุณจะทิ้งระบบของคุณอย่างถาวร
HDave

44

ฉันเคยทำผิดพลาดrmมาก่อนดังนั้นนี่คือเคล็ดลับที่ฉันได้เรียนรู้ในช่วงหลายปีที่ผ่านมาเพื่อพยายามปกป้องข้อมูลของคุณให้ปลอดภัยจากอุบัติเหตุ:

  1. ใช้วิธีแก้ปัญหากราฟิกเช่น Nautilus นุ่มลบมันไปที่ถังขยะ จากนั้นเมื่อคุณรู้ว่าคุณยังไม่ได้ย้าย$HOMEเข้าไปในถังขยะ (ทุกอย่างจะเริ่มล้มเหลวและดูขี้ขลาด) ให้ล้างถังขยะของคุณ

  2. ย้ายแทนการลบ เปลี่ยนชื่อไดเรกทอรีด้วยmvเช่น:

    mv ./\~ ./a-nice-sensible-directory-name

    จากนั้นลบทิ้ง

  3. หากมีข้อสงสัยให้ใช้-iธงเมื่อจัดการกับ fubars ที่อาจเกิดขึ้น มันจะพร้อมท์ให้คุณลบไฟล์ทุกไฟล์และควรแจ้งให้คุณทราบอย่างรวดเร็วว่ามีอะไรไม่ดีเกิดขึ้น

    oli@bert:~/Desktop$ rm -rfi ./del/
    rm: descend into directory `./del'? y
    rm: remove regular file `./del/output2.pdf'?

1
ลาดเท GUI, ขั้ว SSH ของมัน: P mvดีความคิดเกี่ยวกับ ผมคิดว่าผมควรจะทำนามแฝง RM rm -iด้วย
theTuxRacer

7
คุณสามารถกระโดดssh://user@ip/folderเข้าไปในหอยโข่ง ใช้งานไม่ได้กับทุกสิ่ง (เช่นถ้าคุณต้องการ sudo) แต่ไปที่นั่น นามแฝง-iเป็นดาบสองคม มันมีประโยชน์ แต่ก็น่ารำคาญอย่างมากเมื่อคุณทำไฟล์มากมาย พิจารณา-Iด้วย และดูman rmเคล็ดลับเพิ่มเติม
Oli

+1 สำหรับแนวคิดการย้าย ตอนนี้ฉันสงสัยว่าทำไมไม่มีการแทนที่แบบเลื่อนลงสำหรับการrmย้ายไปที่ (พูด) ~ / .Trash
ShreevatsaR

19

ปัญหาที่ยอดเยี่ยม :)

คุณสามารถลบไดเรคทอรีได้โดยการหนีเครื่องหมายตัวหนอน:

rm -rf \~

ใช้ได้กับอักขระพิเศษทุกประเภท



6

อีกวิธีที่ซับซ้อนกว่าเล็กน้อยคือการใช้ตัวเลข inode:

$ ls -li
total 24
 7146369 drwxr-xr-x   4 user  staff   136 Jan 19 21:50 ~
$ find . -xdev -inum 7146369 -exec rm -rf {} \;

ข้อดี

  • มันทำงานได้กับชื่อแฟนซีที่คุณสามารถมีได้
  • ควรจะปลอดภัยเนื่องจากหมายเลขไอโหนดจะไม่ซ้ำกัน ( -xdev: อย่าลงไดเรกทอรีบนระบบไฟล์อื่น ๆ ) -exec rm -rf {} \;และคุณสามารถทดสอบการค้นหาครั้งแรกเพียงในกรณีที่ลบ

จุดด้อย

  • การทำfind .ไดเรกทอรีที่มีไฟล์และ / หรือไดเรกทอรีจำนวนมากจะใช้เวลานานและการอ่านดิสก์

ฉันสนใจ inodes เสมอและสงสัยว่ามันเป็นไปได้หรือไม่ที่จะทำ =)
theTuxRacer

แน่นอนว่าจะใช้งานได้เฉพาะในกรณีที่ระบบไฟล์ปัจจุบันของคุณมีแนวคิดของ inode (ไม่ใช่ระบบไฟล์ทั้งหมดที่ Ubuntu รองรับมีแนวคิดนี้ - แม้ว่าระบบไฟล์ส่วนใหญ่ที่ไม่ใช่ระบบไฟล์ Unix ดั้งเดิมเช่น vFat และ NTFS)
Billy ONeal
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.