findで空のディレクトリを削除する方法
提供: Linux入門
スポンサーリンク
Unix の find コマンドは、ファイルやディレクトリを探す便利なコマンドです。 find には、いろいろなオプションがありますが、空のディレクトリを削除する機能もあります。
読み方
- find
- ふぁいんど
概要
自分で1つ1つのディレクトリを空であること確認して、ディレクトリを rmdir で削除するよりも、 find でサクっと空のディレクトリを削除することができます。
ディレクトリを見つける方法
ディレクトリを見つける方法は、 type オプションでディレクトリを指定するだけです。
find . -type d
空のディレクトリを見つける方法
空のディレクトリを見つける場合には、type オプションでディレクトリを指定し、 empty オプションをつけます。
find . -type d -empty
空のディレクトリを削除する方法
find で空のディレクトリを削除する方法は、空のディレクトリを見つけるオプションに加えて、削除するオプションを指定します。
OSのfindコマンドによっては -delete オプションがないかもしれませんが、FreeBSD, Mac , WSLのUbuntuなどの find では以下のコマンドで 空のディレクトリを削除できます。
find . -type d -empty -delete
上記以外の方法では exec オプションや パイプで xargs + rm を組み合わせるといった手法が考えられます。
find . -type d -empty -exec rmdir {} \;
xargs を使う場合には find の -print0 オプションを併用することで、スペースが含まれるファイル名(ディレクトリ名)でも正しく削除を実行できます。
find . -type -d -empty -print0 | xargs -0 rmdir
関連項目
ツイート
スポンサーリンク