find . * -depth -print0 | xargs -0 rmdir
すべての空のフォルダ(隠しフォルダを含む)を繰り返し見つけて削除します。
私のホームフォルダとLinux PCのペンドライブでのみ試しましたが、うまくいきましたが、/ rootで実行するのが安全かどうかわかりません。
一度は、インターネット上でいくつかのコマンドを実行してオペレーティングシステムを壊したことがあります(理解できません)。
答え1
ページは次のとおりman
ですrmdir
。
Remove the DIRECTORY(ies), if they are empty.
空のディレクトリをすべて削除するのは安全です。あなたが尋ねるべき質問は次のとおりです。 -
削除しますか?みんなディレクトリは空ですか?
一部のアプリケーションでは、ディレクトリが空であってもディレクトリが必要です。たとえば、永続ストアがあるjournald
場合にのみ永続ストアに書き込むように構成できます/var/log/journald
。ディレクトリが空のときにコマンドを実行すると、ディレクトリが削除されます。ディレクトリが見つからないため、後でjournald
永続ストアに書き込まれません。私はFedoraが基本的にこのように構成されていると思います。
コマンドを使用して空の(アンマウントされた)マウントポイントを削除することもできます。簡単に修正できますが、まだ問題を引き起こす可能性があります。
答え2
このコマンドはほとんどの場合安全ですが、コマンドがoptionsを受け入れることができる場合は、*
ダッシュで始まるファイル名(バグまたは他のバグを悪用できる悪意のある人が作成した場合)として使用することはお勧めできません。オプションとして解釈されます。誰かが言ったように*
、ここでは意味がありませんが、覚えておくべきことは、特にrootでコマンドを実行するときにすべてのパラメータを制御する必要があるということです。通常、プレフィックスのないワイルドカードは使用しないでください(例:代わりに通常*
より./*
良い)。また、ファイル名のシンボリックリンクとスペースにも注意してください。
答え3
find
ディレクトリツリーのすべてのファイルとフォルダが印刷されます。 findから返された各要素に対してxargs
提供されたコマンドを実行します。rmdir
rmdir
空でないフォルダは削除されず、ファイルも削除されません。試してみてください。一部のファイルを含むmkdir
フォルダを作成し、そのフォルダで実行します。次のことについて不平を言うでしょう。touch
rmdir
rmdir
rmdir: failed to remove ‘test’: Directory not empty
rmdir: failed to remove ‘test.txt’: Not a directory
はい。完全に安全でなければなりません。テストするには、mkdir
テストフォルダセットを使用して作成し、期待どおりに機能してtouch
いることを確認できます。
また、rmdir
-および* nixのほぼすべてのコマンドの詳細については、を実行してくださいman <command>
。