Tại sao tôi nhận được Thư mục của Java không trống rỗng khi tôi cố xóa một thư mục trống?


37

Tôi có thư mục trống này, nhưng tôi tiếp tục nhận được thông báo lỗi sau:

Cannot remove test: Directory not empty

Tôi biết câu hỏi này đã được hỏi rất nhiều lần nhưng không ai trong số họ giúp được.

Tôi đã cố gắng ls -lađảm bảo không có tệp nào bị ẩn và dường như không có: nhập mô tả hình ảnh ở đây

Tôi cố gắng sudo rmdir testcũng như sudo rm -rf test, và tôi chỉ không biết những gì là sai.

Tôi đọc nó có thể là một vấn đề với hệ thống tập tin, nhưng tôi không biết làm thế nào tôi sẽ sửa nó.


Hãy thửsudo fsck /
ike

2
Đây có phải là một thư mục bình thường hoặc một điểm gắn kết. Nếu đây là một điểm gắn kết, nó sẽ được ngắt kết nối trước khi xóa. Nếu đó là một thư mục bình thường, đôi khi có thể có một số xử lý mở gây ra vấn đề này. Khởi động lại máy của bạn một lần và cố gắng xóa nó.
vembutech

@rbrick Có phải testtên người dùng đăng nhập của bạn? đầu ra là echo $USERgì? và cái gì echo $HOME?
αsнι

1
Tôi bối rối, tại sao người dùng không có quyền thực thi trên thư mục, nhưng nhóm thì có?
Julian Stirling

Câu trả lời:


36

Tôi gặp vấn đề tương tự trên một đĩa cứng ngoài, tôi đã thử rất nhiều cách sử dụng dòng lệnh, nhưng tôi đã thất bại mỗi lần. Đó là những gì làm việc cho tôi:

  1. Nhấp chuột phải vào thư mục
  2. Di chuyển vào thùng rác
  3. Thùng rác

Vâng, điều đó thật ngớ ngẩn nhưng nó hiệu quả với tôi (tôi thực sự không biết làm thế nào và tại sao, nhưng thư mục chết tiệt không còn tồn tại)


Tôi có cùng một vấn đề và câu trả lời của bạn hoạt động. Không hoàn toàn chắc chắn những gì ngớ ngẩn đã xảy ra, và tại sao "-rf" không thể xóa một thư mục không trống.
artm

3
Điều gì vừa xảy ra ở đây? Tại sao nó hoạt động?
Sahil Arora

Chuyện gì đã xảy ra? Thành thật mà nói, tôi không biết. Có thể, vì lý do nào đó, tệp của thư mục bị hỏng vì một lý do: một cờ như "trống" hoặc bộ đếm tệp như "bao nhiêu tệp bên trong" đã được xử lý thành một giá trị sai. Đôi khi, các lỗi như thế này có thể được gây ra bởi các hư hỏng trên đĩa cứng. Tại sao nó hoạt động? Tôi không biết cách thực hiện các lệnh (nghĩ về C), nhưng tôi đoán họ kiểm tra các cờ và bộ đếm đó trước khi hành động (ý tôi là, nếu bộ đếm tệp> 0 thì "error: thư mục không trống" và hủy bỏ), trong khi làm trống thùng rác trực tiếp loại bỏ thư mục và tất cả các tập tin và thư mục con của nó mà không có bất kỳ loại kiểm tra.
Marco Ottina

Có thể, việc xóa một thư mục thông qua dòng lệnh yêu cầu một số điều kiện, như sự trống rỗng của thư mục, (vì việc xóa nút của thư mục khỏi hệ thống tệp chỉ xóa mã liên kết đơn đó và yêu cầu thư mục trống để không có nút nào khác bị quên "Thông qua hệ thống tệp do mất liên kết trung gian với chúng, được biểu thị bằng thư mục) .. và xóa thư mục thông qua nhấp chuột phải -> xóa hoặc xóa thùng rác xóa thư mục VÀ tất cả các tệp và thư mục con đệ quy, không quan tâm đến cờ, quầy và những thứ tương tự (vì vậy, không có kiểm tra nào được thực hiện)
Marco Ottina

1
Trong trường hợp của tôi, thư mục con trong câu hỏi tình cờ nằm ​​trong một thư mục được chia sẻ từ máy Mac của tôi sang máy ảo linux và tôi đang cố xóa thư mục từ phía máy ảo linux. Có vẻ như phía Mac đang giữ một số thư mục. Làm rm -rftừ phía Mac làm việc.
MindJuice

5

Tôi đã cài đặt hệ thống kép win 10 + ubfox. Và cả hai hệ thống chia sẻ các cửa sổ parititions.

Gần đây, tôi cũng gặp phải tình trạng không thể xóa các thư mục trống trong các phân vùng dưới ubfox. Tôi không thể tìm ra giải pháp để giải quyết nó trong linux.

Tuy nhiên, sau khi tôi chuyển sang windows và chạy

chkdsk

thông qua cmdcho đĩa đích. Một số lỗi đã được kiểm tra. và sau đó tôi chạy

chkdsk /F

để sửa lỗi đĩa.

Sau khi kết thúc, tôi có thể xóa các thư mục đó ngay bây giờ.


2
Phương pháp này hiệu quả với tôi. Tôi nghĩ cũng cần lưu ý rằng (các) phân vùng được chia sẻ là định dạng NTFS và có lẽ nó bị hỏng.
krismath

4

Bạn có thể xóa nó bằng cách gõ sudo rm -rf {dir_name}. Thư mục có thể đã được đặt thành quyền chỉ đọc. Tôi hy vọng lệnh đã cho có thể xóa thư mục.


Directory not emptyDù sao tôi cũng nhận được . Có vẻ lạ, vì vậy tôi đã ghi lại màn hình của mình để chứng minh.
naXa

Lệnh đó trong câu trả lời hoạt động ngay cả khi thư mục có nội dung và cả với các thư mục con.
Wolverine


hành vi kỳ lạ này là do lỗi trong phân vùng NTFS. giải quyết với chkdsk /F.
naXa

4

Tôi gặp vấn đề tương tự không thể xóa thư mục vì nó không trống.

Chuỗi hoạt động này làm việc cho tôi.

  1. Từ dòng lệnh đầu tiên

    sudo rmdir  --ignore-fail-on-non-empty folder-name-to-be-deleted
    

Lệnh trên giúp thư mục bỏ qua Ubuntu không trống.

  1. Sau đó, chỉ cần vào thư mục và Shift + Del. Đó là tất cả.

3

Giải pháp GUI

  1. Di chuyển hoặc cắt và dán thư mục vào thư mục rác
  2. đổ rác

xong rồi

Giải pháp dòng lệnh

sudo mv folder_error/ .local/share/Trash

bạn có thể xóa bằng thùng rác: thùng rác hoặc

sudo rm -fr ~/.local/share/Trash/*

1
Tôi nghĩ rằng giải pháp dòng lệnh ở đây thực sự là một giải pháp chung. Di chuyển thư mục trống đến một vị trí khác và xóa nó sau khi di chuyển. Ví dụ, một cái gì đó như thế này mkdir a ; mv test a/ ; rm -rf a/test ; rm -rf a. Một cách tiếp cận như thế có hiệu quả với tôi (mặc dù tôi không biết tại sao nó lại như vậy) và tôi không cần quyền truy cập root.
Jake Fisher

2

Nếu thư mục là một phần của hệ thống tệp được gắn với CIFS (còn gọi là samba) và nó chứa tệp là liên kết tượng trưng bị hỏng, thì lskhông thể đề cập đến tệp đó. (Tôi quan sát lỗi này trên máy khách CIFS chạy 14.04.2 LTS và máy chủ chạy 12.04.5 LTS.)

Vì vậy, thư mục không trống , nhưng (trên CIFS) bạn không có cách nào để thấy điều đó. Tập tin chỉ có thể được nhìn thấy, và do đó chỉ có thể bị xóa, bởi một lệnh chạy trên máy chủ lưu trữ tập tin hệ thống tập tin đó.


2

Nếu bạn đang sử dụng btrfs, nó có thể là một thư mục trống với i_size khác không. Bạn có thể kiểm tra xem đây có phải là trường hợp không:

stat -c %s test

I_size của một thư mục trống trong btrfs nên bằng không. Trong trường hợp của tôi, tôi đã nhận được 6160 với ~/.config/chromium/Default.

Giải pháp được đề xuất là ngắt kết nối hệ thống tập tin, chạy btrfs checkđể xác nhận sự cố và kiểm tra các thư mục có vấn đề khác và cuối cùng chạy btrfs check --repairđể khắc phục. Tuy nhiên, thao tác này có nhiều rủi ro, vì vậy tốt nhất là bạn nên sao lưu tệp trước.

Nguồn: Câu hỏi thường gặp về Btrfs


1

Tôi gặp vấn đề tương tự trên Ubuntu 16.04 và tôi đã khắc phục bằng cách:

  1. làm trống thư mục thùng rác
  2. khởi động lại

Mở và đóng trình quản lý tập tin không làm tốt việc chỉ khởi động lại.


0

thử lệnh này:

sudo lsof | grep deleted 

Kiểm tra trong danh sách nếu thư mục của bạn vẫn đang được sử dụng. : D

Nếu vậy, dừng dịch vụ và bạn sẽ có thể xóa thư mục.


Rõ ràng thư mục sẽ không hiển thị trong danh sách các mô tả tệp đã mở, đã xóa nếu không thể xóa được. ; -]
David foerster

0

Vấn đề này xuất hiện khi những thư mục hoặc tập tin không được sao chép hoàn toàn. Đó là lỗi đầu vào / đầu ra. Tôi đã cố gắng xóa bằng Shift+ Delhoặc thông qua các lệnh, nhưng chúng không hoạt động. Tôi đã thử nhấp chuột phải và "Di chuyển đến Thùng rác" và nó đã hoạt động.

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.