Xóa thư mục có tên ~


30

Đây là đầu ra của 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

Tôi không thể làm điều đó rm -rf ~ vì điều đó sẽ xóa thư mục nhà của tôi.

Tôi nên làm gì? Nó không phải là vấn đề đối với tôi, nhưng chỉ là đau mắt.


8
Tôi sẽ tránh viết rm -rflên một cái gì đó có khả năng thất bại như vậy nếu bạn gõ sai. Xem xét nhập ./~thư mục của bạn và xóa nội dung của nó từ đó trước khi di chuyển một thư mục và chạy rmdir ./~để xóa thư mục ~ chính nó.
cá adamnfish

Câu trả lời:


58

rm -R ./~

Điều đó sẽ làm cho nó tìm kiếm ~trong thư mục hiện tại.


wow, cách để nhìn thẳng mọi thứ! thanh danh!
theTuxRacer

2
Câu trả lời này là đúng, nhưng tôi nghĩ câu trả lời của Oli tốt hơn vì nó an toàn hơn. Nếu bạn gõ nhầm lệnh này, bạn sẽ xóa vĩnh viễn hệ thống của mình.
HDave

44

Trước đây tôi đã mắc phải những lỗi ngớ ngẩn rmvì vậy đây là một vài mẹo tôi đã học được trong nhiều năm để thử và giữ cho dữ liệu của bạn an toàn khỏi các tai nạn:

  1. Sử dụng một giải pháp đồ họa như Nautilus. Xóa mềm nó vào thùng rác. Sau đó, khi bạn biết rằng bạn đã không chuyển bạn $HOMEvào thùng rác (mọi thứ sẽ bắt đầu sụp đổ và trông thật vui nhộn), hãy dọn sạch thùng rác của bạn.

  2. Di chuyển thay vì xóa. Đổi tên thư mục với mv, vd:

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

    Sau đó xóa nó.

  3. Nếu nghi ngờ, hãy sử dụng -icờ khi giao dịch với các fubar tiềm năng. Nó sẽ nhắc bạn cho mọi tệp bị xóa và sẽ cho bạn biết rất nhanh nếu có điều gì xấu xảy ra.

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

1
Không thể GUI, đây là thiết bị đầu cuối ssh: P Ý tưởng hay về mv. Tôi nghĩ rằng tôi nên làm bí danh rm với a rm -i.
theTuxRacer

7
Bạn có thể bung ssh://user@ip/foldervào nautilus. Không hoạt động cho tất cả mọi thứ (ví dụ nếu bạn cần sudo), nhưng bạn đi. Aliasing -ilà con dao hai lưỡi. Nó rất hữu ích nhưng cũng rất khó chịu khi bạn làm nhiều tệp. Cân nhắc -Iquá. Và nhìn vào man rmđể biết thêm lời khuyên.
Oli

+1 cho ý tưởng di chuyển. Bây giờ tôi tự hỏi tại sao không có sự thay thế thả xuống cho rmviệc chuyển sang (nói) ~ / .Trash.
ShreevatsaR

19

Vấn đề rực rỡ :)

Bạn có thể xóa thư mục bằng cách thoát dấu ngã:

rm -rf \~

Điều này làm việc cho tất cả các loại nhân vật đặc biệt.


17

Bạn có thể chỉ cần đặt tên thư mục thành dấu nháy đơn:

 rm '~'

6

Một cách khác, phức tạp hơn một chút, cách thực hiện là sử dụng số inode:

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

Ưu

  • Nó hoạt động với tên ưa thích mà bạn có thể có.
  • Nên an toàn vì số inode là duy nhất ( -xdev: Không giảm các thư mục trên các hệ thống tệp khác) và bạn có thể kiểm tra tìm kiếm trước, chỉ trong trường hợp, loại bỏ -exec rm -rf {} \;.

Nhược điểm

  • Làm find .trong một thư mục có nhiều tệp và / hoặc thư mục sẽ mất rất nhiều thời gian và đọc đĩa.

Tôi luôn quan tâm đến các nút, và tự hỏi liệu có thể làm được không =)
theTuxRacer

Tất nhiên, điều này chỉ hoạt động nếu hệ thống tập tin hiện tại của bạn có khái niệm về một inode (không phải tất cả những loại phân vùng Ubuntu hỗ trợ có khái niệm này - dù hầu hết những người mà không làm không phải là hệ thống tập tin Unix bản địa như VFAT và NTFS)
Billy Oneal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.