読者の利益のために:
rm -rf
そのような場合には注意してください! ネットワーク共有である場合、他の場所で問題が発生する可能性があります! 警告されました!
ほぼすべてのケースでは、場合directory
、空のようです、使用しrmdir directory
多分かsudo rmdir directory
。rm
(またはdel
Windowsで)使用しないでください。これが機能しない場合は、このリクエストをブロックしているものを見つけて修正し、再試行する必要がありますrmdir
。
私はOS-Xを知らないことに注意してください。しかし、そこにあるものはUnix / BSDの動作に非常に似ていると思います。
これは、問題のディレクトリがちょうどだった可能性が非常に高いマウントポイント(encfsから)または読み取り専用になりましたか(削除するディレクトリを防ぐ)いくつかの不適切な状態のままマウントポイントに常駐しています。ディレクトリを強制的に削除すると、非常に悪いことが起こる可能性があります。
良いケースでは、ディレクトリは本当に空だったので、それを削除(マウントを破壊するなど)してもそれ以上の害はありませんでした。悪いケースでは、それは空ではなく、ただあるように見えました。つまり、あなたはおそらく殺したくない何かをゴミ箱に捨てました。これはすべてマウントタイプ、使用中のドライバーなどに依存します。
物事が合理的にうまく実装されていれば、通常は何も悪いことは起こりません。ただし、これは通常のケースではありません。物事はすでに奇妙な状態にあります。つまり、何かがおかしいので、さらに混同しないでください。何かが割れた場合、間違ったタッチで破損する可能性があります。
たとえば、ネットワーク共有で競合状態になった場合、rm -rf
他の誰かによって共有にコピーされたばかりのデータが削除される可能性があります。
ただしrmdir
、本当に空のディレクトリを削除する以外に、決して害を及ぼさないことが保証されています。NFSだけに、本当にアトミック動作を保証ので、これは、NFS上でさえ真実であるmkdir
とrmdir
、しかし、どこにも。
参考までに:
ツールを使用してマウントポイントを検出できますmountpoint directory
。または、の出力を調べて、mount
マウントを見つけようとします。しかし、少なくともLinuxではこれは嘘をつくかもしれないことに注意してください。mountpoint
ユーティリティを使用すると、信頼性は向上しますが、利便性は低下します。
その場合、マウントポイントが見つかった場合は、マウントポイントをアンマウントしてからディレクトリを削除できます。これは次のシーケンスです。
umount directory
rmdir directory
必要に応じてsudo
、通常どおりを使用します。
ノート:
ネットワーク共有はrmdir
、アクセス権が原因で拒否(およびその他のもの)する場合があります。
rmdir
障害戦略によっては、ファイルシステムの欠陥により拒否される場合があります。その場合、おそらくあなたは合理的なメッセージを見るでしょう。
Linux(およびおそらく最新のOS)では、さまざまな手段(読み取り専用のマウント、SeLinuxのような機能など)を使用してアクセスを制限することもできます。これは、マウントポイントであることがわからないことを意味します。また、何も間違っていることはありませんが、機能しません。その場合、他の理由を探す必要があり、OSに深く埋もれてしまう可能性があります。妥当なエラーメッセージが表示される場合は、ツールによって異なります。また、おそらくdmesg
Linuxのようにsyslog / kernel-logを確認してください(OS-Xに相当するものは知りません)。
強制的なファイルロックもソースになる可能性があることに注意してください。これはWindowsでは正常ですが、通常はUnixの場合は正常ではなく、ディレクトリについては聞いたことがありません。必須のファイルロックはPOSIXでカバーされていますが、オプションです。
そのような場合、かなり頻繁に、問題のディレクトリは、あなたが思ったのとは異なるファイルシステムに存在します。あなたはコマンドでこれを見つけることができますdf directory
(これはOS-Xでも同じだと思います)。
ディレクトリなどのツールをstat
使用statfs
して、さらに詳しく調べることができます。しかし、これらは普通の人には少し低いレベルであり、そのようなツールは普通のユーザーからはかなり隠されています。
ディレクトリは、面白い名前のファイルを持つことができます。すぐに端末の出力を消去するファイルのように、そこにないように見えます。ls -al | less
MidnightCommanderのようなものを試すか、使用しますmc
。
バグ、ハクサー、エイリアン、またはおそらく妖精のようなよりエキゾチックなものを含む、他の可能性の列車があります。しかし、通常、そこを探し始めるのは賢明ではありません。代わりに、「人為的エラー」のため、まずあなたの側でエラーを見つけようとします。
rmdir
が、多くの場合、ボリュームをアンマウントできない原因です)。