空のディレクトリを削除する方法

findコマンドで空のディレクトリを削除する

ファイルが何も入っていない空のディレクトリがある場合、lsコマンドでディレクトリの内容を確認してファイルが無ければ削除するって事を手動でやっていると時間ばかりかかるので、findコマンドで空のディレクトリを探して、空のディレクトリがあると削除するコマンドを叩くと空のディレクトリが削除されます

空のディレクトリを探すfindのオプションは「-type d -empty」で空のディレクトリに探します。その結果を「xargs」、「exec」、「delete」等で使ってディレクトリを削除します

xargsを使用した場合のコマンド

 

-execを使用した場合のコマンド

 

-deleteを使用した場合のコマンド

findのmanページで下記のような事が書いてありましたので、-deleteのオプションを使用する場合は注意して下さい

警告: 忘れないでいただきたいが、find のコマンドラインは一つの式 (expression) として評価されるので、一番最初に -delete を指定すると、 find は、指定された探索の開始点以下にあるものを、ことごとく消去しようとする。 後で -delete を付けて使用するつもりで、find のコマンドラインをテスト実行するときは、-depth を明示的に指定するとよい。 そうすれば、後で「こんなはずではなかった」と慌てないですむ。 -delete を指定すると自動的に -depth が有効になるので、-prune-delete と一緒に使っても役に立たない。

スポンサーリンク