Không thể xóa 'some_directory': Thư mục không trống


27

Tôi đã cố xóa một số thư mục, nhưng

$ rm DE.aspx_files -r
rm: cannot remove `DE.aspx_files': Directory not empty

Nhưng liệt kê nội dung của nó không trả về

$ ls DE.aspx_files
$

Đã thêm: Thật ra

$ ls -la DE.aspx_files

total 4
drwx------ 1 ting ting 4096 Sep 14 20:48 .
drwx------ 1 ting ting    0 Sep 13 22:34 ..
-rw------- 1 ting ting    0 Sep 13 22:34 .fuse_hidden0001d4bf00000006

Khi tôi cố gắng rm .fuse_hidden0001d4bf00000006, nó sẽ bị xóa, nhưng một cái mới khác .fuse_hidden0001d4bf00000007được tạo ra.

Vì vậy, tôi tự hỏi những gì đã xảy ra, và làm thế nào để khắc phục vấn đề này?

Lưu ý: đó là một ổ cứng di động bên ngoài mới mua và tôi chỉ sao chép một số tệp vào nó bằng chương trình khôi phục dữ liệu.

HĐH: Ubuntu 12.04

Cảm ơn!


3
Bạn cần tìm ra cái gì đang gắn hệ thống tập tin FUSE ở đó. Cố gắng mount | fgrep fusetìm nó và fusermount -u <mountpoint>để ngắt kết nối nó trước khi cố gắng xóa thư mục của bạn.
CodeGnome

Làm thế nào để bạn xóa các tập tin mà không cần gắn?
Stephen Boston

Câu trả lời:


16

Các tệp ẩn

Bạn có thể có các tập tin ẩn. Bạn có thể tìm thấy chúng ls -lađể đảm bảo rằng bạn ổn với việc thực sự xóa chúng trước. Sau đó, bạn có thể xóa các tập tin trước khi chạy rm -rhoặc rmdirkhi cần thiết.

Buộc xóa đệ quy

Bạn cũng có thể chỉ cần thực hiện rm -rfđể xóa đệ quy ngay cả khi thư mục đích chứa tệp. Tất cả các cảnh báo thông thường được áp dụng, nhưng nó sẽ hoàn thành công việc bất kể thư mục của bạn chứa gì - miễn là bạn có quyền xóa các tệp và thư mục, tất nhiên.


1
Ngoài ra, bạn có thể chạy find DE.aspx_files -exec ls -la {} \;để xác định các tệp ẩn hoặc các tệp có tên bằng các ký tự đặc biệt.
Tim Kennedy

Cảm ơn, tôi đã xác định được tập tin ẩn thủ phạm, có thể bị xóa nhưng một anh chị em mới được tạo ra. Xin vui lòng xem phần bổ sung của tôi. Buộc xóa cũng không hoạt động, vì "Thư mục không trống".
Tim

56

Các tệp có dạng .fuse_hidden*được tạo bởi hệ thống tệp FUSE khi tệp bị xóa nhưng vẫn được sử dụng ở đâu đó và vẫn phải có mục nhập thư mục. Điều này tương tự với .nfs*các tệp trên các thư mục được xuất qua NFS .

Chạy df -T .để xem loại hệ thống tập tin được gắn trên thư mục hiện tại và điểm gắn kết của nó. Đối với ổ cứng ngoài, rất có thể đây là hệ thống tệp NTFS được gắn thông qua trình điều khiển NTFS-3G , dựa trên FUSE.

Tên này là tên giả mà trình điều khiển hệ thống tệp phát minh cho một tệp bị xóa. Bạn không thể xóa tệp (hoặc đúng hơn, nếu bạn tạo tệp, nó sẽ xuất hiện lại dưới tên khác). Bạn cũng không thể xóa thư mục, vì nó không trống. Bạn sẽ cần tìm những gì đang sử dụng tập tin này. Nguyên nhân rất có thể của việc sử dụng là nếu nó được mở bởi một số ứng dụng. Chạy lsof /media/mount-pointở đâu /media/mount-pointlà điểm gắn kết hệ thống tập tin và tìm kiếm một tệp đang mở trong thư mục đó.


6
Câu trả lời NÀY là câu trả lời thực sự giải quyết vấn đề
Martin Erhardt

Cảm ơn, nó hoạt động. Tôi đã sử dụng câu trả lời này và thấy một loạt các công cụ đang sử dụng các thư mục của tôi. Khởi động lại, sau đó cố gắng xem lại danh sách tương tự - nó trống rỗng. Và sau đó việc xóa diễn ra suôn sẻ.
Sevastyan

12

Đối với các đĩa cứng ngoài, vấn đề này có thể được giải quyết bằng,

  • Nhấp chuột phải vào thư mục và chọn Move to Trash
  • Làm sạch thùng rác

Nó làm việc cho tôi ngay cả khi rm -rfkhông làm việc.


1
Có cái này hoạt động. Tại sao?! Tuy nhiên, các tập tin sau đó nằm trong thùng rác và cũng có vấn đề.
Stephen Boston

-1

Nếu trên mac, hãy lưu ý đến các tệp * .localized, có thể trở nên vô hình ngay cả với 'ls -la', 'find' và ilk của chúng trên hệ thống tệp FUSE. [Điều này được phát hiện bằng cách sử dụng hệ thống tệp FUSE ConnectedData Transporter tạo trên MacBook Pro.]


-1

Điều này có thể xảy ra khi bạn đang gieo một tệp trong máy khách torrent. Chỉ cần đảm bảo bạn tắt máy khách torrent hoặc xóa torrent gieo hạt.

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.