空のディレクトリを削除しようとすると、「Directory not empty」というメッセージが表示されるのはなぜですか?


37

この空のディレクトリがありますが、次のエラーメッセージが表示されます。

Cannot remove test: Directory not empty

私はこの質問が何度も聞かれたことを知っていますが、誰も助けませんでした。

私はls -la隠しファイルがないことを確認しようとしましたが、存在しないようです: ここに画像の説明を入力してください

sudo rmdir test同様に試しましたがsudo rm -rf test、何が間違っているのかわかりません。

私はそれがファイルシステムに問題があるかもしれないと読みましたが、私はそれをどのように修正しようとするのか分かりません。


試してみてくださいsudo fsck /
IKE

2
通常のディレクトリまたはマウントポイントですか。これがマウントポイントである場合、削除する前にマウント解除する必要があります。通常のディレクトリの場合、この問題を引き起こすハンドルが開いている場合があります。マシンを一度再起動して、削除してみてください。
vembutech 14

@rbrick testログインユーザーの名前はありますか?の出力はecho $USER何ですか?そして何echo $HOME
αғsнιη

1
私は混乱しています、なぜユーザーはディレクトリの実行権限を持っていませんが、グループは持っていますか?
ジュリアンスターリング

回答:


36

外付けハードディスクでも同じ問題が発生しました。コマンドラインを使用してさまざまな方法を試しましたが、毎回失敗しました。それが私のために働いたものです:

  1. フォルダーを右クリック
  2. ゴミ箱へ移動
  3. 空のごみ箱

はい、それはばかげていますが、それは私のために働きました(私は本当にどのようにそしてなぜかわかりませんが、いまいましいフォルダはもはや存在しません)


私は同じ問題を抱えており、あなたの答えは機能します。馬鹿げたことは何が起こったのか、なぜ "-rf"が空でないフォルダの削除に失敗したのかはよくわかりません。
-artm

3
ここで何が起こったのですか?なぜ機能したのですか?
サヒルアローラ

何が起こった?正直なところ、私は知りません。フォルダーのファイルが何らかの理由で破損している可能性があります。「is-empty」などのフラグまたは「how-many-file-inside」などのファイルカウンターが誤った値に設定されています。このようなエラーは、ハードディスクの損傷によって引き起こされる場合があります。なぜ機能したのですか?私はコマンドがどのように実装されているのかわかりませんが(Cについて考えてください)、行動する前にそれらのフラグとカウンターをチェックすると思います(つまり、ファイルカウンター> 0の場合、「エラー:ディレクトリが空ではない」と中止)ゴミ箱は、チェックなしでフォルダとそのすべてのファイルとサブフォルダを直接削除します。
マルコオッティナ

おそらく、コマンドラインからフォルダーを削除するには、フォルダーの空のようないくつかの条件が必要です(ファイルシステムからフォルダーのノードを削除すると、その単一のリンクノードのみが削除され、他のファイルノードが「忘れられない」 「フォルダへの中間リンクが失われるためファイルシステムを介して)..そして右クリックでフォルダを削除->ゴミ箱を削除または空にすることで、フラグを気にせずにフォルダとすべてのファイルとサブフォルダを再帰的に削除し、カウンターとそのようなもの(したがって、チェックは実行されません)
マルコオッティナ

1
私の場合、問題のサブディレクトリは、私のMacからLinux VMに共有されたフォルダーにあり、Linux VM側からフォルダーを削除しようとしていました。Mac側はいくつかのフォルダーを保持していたようです。rm -rfMac側から行うのはうまくいきました。
マインドジュース

5

Win 10 + Ubuntuデュアルシステムがインストールされています。そして、両方のシステムがWindowsのパーティションを共有しています。

最近、ubuntuの下のパーティションにある空のフォルダーを削除できなくなった。Linuxでそれを解決する解決策を見つけることができません。

ただし、ウィンドウに切り替えて実行した後

chkdsk

経由してcmdターゲット・ディスクのため。いくつかのエラーがチェックアウトされました。そして、私は走る

chkdsk /F

ディスクエラーを修正します。

終了後、これらのフォルダーを削除できるようになりました。


2
この方法は私には有効です。共有パーティションはNTFSフォーマットであり、おそらく破損していることに注意することも重要だと思います。
クリマス

4

を入力して削除できますsudo rm -rf {dir_name}。ディレクトリーは読み取り専用許可に設定されている可能性があります。指定されたコマンドでフォルダを削除できることを願っています。


Directory not emptyとにかく得る。奇妙に思えるので、証明するために画面を記録しました。
naXa

答えのコマンドは、ディレクトリにコンテンツがあり、サブディレクトリがある場合でも機能します。
ウルヴァリン

ただ見ていると信じないでください:D drive.google.com/open?id=1UEYVa4UT6df7xucrq-lO82xjk3afHHzA
naXa

この奇妙な動作は、NTFSパーティションのエラーが原因でした。で解決しましたchkdsk /F
naXa

4

空ではないため、ディレクトリを削除できないという同じ問題がありました。

この一連の操作がうまくいきました。

  1. 最初にコマンドラインから

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

上記のコマンドは、ubuntuがディレクトリが空でないことを無視するのに役立ちます。

  1. 次に、フォルダに移動し、Shift + Delを押します。これで完了です。

3

GUIソリューション

  1. フォルダーをゴミ箱フォルダーに移動または切り取りと貼り付け
  2. ゴミ箱を空にする

されております。

コマンドラインソリューション

sudo mv folder_error/ .local/share/Trash

trash-cliでクリアできます:trash-emptyまたは

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

1
ここでのコマンドラインソリューションは、実際には一般的なソリューションだと思います。空のフォルダを別の場所に移動し、移動したら削除します。例えば、このようなものmkdir a ; mv test a/ ; rm -rf a/test ; rm -rf a。そのようなアプローチは私にはうまくいきましたが(なぜそうなるのか分かりません)、ルートアクセスは必要ありませんでした。
ジェイクフィッシャー

2

ディレクトリがCIFS(別名samba)でマウントされたファイルシステムの一部であり、壊れたシンボリックリンクであるファイルが含まれているls場合、そのファイルの言及に失敗します。(14.04.2 LTSを実行しているCIFSクライアント、および12.04.5 LTSを実行しているサーバーでこのバグを確認しています。)

したがって、ディレクトリは空はありませんが、(CIFSを介して)それを確認する方法はありません。ファイルは、そのファイルシステムをホストしているファイルサーバーで実行されているコマンドによってのみ表示されるため、削除することしかできません。


2

btrfsを使用している場合は、i_sizeがゼロ以外の空のディレクトリである可能性があります。これが事実かどうかは、次の方法で確認できます。

stat -c %s test

btrfsの空のフォルダーのi_sizeはゼロでなければなりません。私の場合、で6160を得ました~/.config/chromium/Default

推奨される解決策は、ファイルシステムをアンマウントし、実行btrfs checkして問題を確認し、他の問題のあるディレクトリをチェックし、最後に実行btrfs check --repairして修正することです。ただし、この操作にはリスクが伴うため、最初にファイルをバックアップすることをお勧めします。

ソース:Btrfs Problem FAQ


1

Ubuntu 16.04でも同じ問題が発生しました。次の方法で修正しました。

  1. ごみ箱を空にする
  2. 再起動

ファイルマネージャを開いて閉じてもうまくいきませんでした。再起動のみが機能しました。


0

このコマンドを試してください:

sudo lsof | grep deleted 

ディレクトリがまだ使用されている場合は、リストを確認してください。:D

その場合は、サービスを停止すると、ディレクトリを削除できます。


削除できない場合、ディレクトリは開いている削除済みファイル記述子のリストに表示されないことは明らかです。;-]
デビッドフォースター

0

この問題は、これらのフォルダーまたはファイルが完全にコピーされていない場合に発生します。入力/出力エラーです。Shift+ Delまたはコマンドを使用して削除しようとしましたが、これらは機能しませんでした。右クリックして「ゴミ箱に移動」してみましたが、うまくいきました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.