findで空のディレクトリを削除する
たくさんあるディレクトリの中からファイルが一つも無いディレクトリ(いわゆる空ディレクトリ)を削除する方法です。
削除する方法としては、findで空ディレクトリを探して、見つかったディレクトリを削除するという方法になります。
空ディレクトリの検索はfindでファイルタイプを指定(-type d) + 空(0byte)のファイルやディレクトリを検索指定(-empty)をします。*1
ディレクトリ削除については、「xargs」「-exec」「-delete」を使う方法があります。
xargsを使用したサンプル
find . -type d -empty | xargs rm -rf
-execを使用したサンプル
find . -type d -empty -exec rm -rf {} \;
-deleteを使用したサンプル
※「-delete」オプションはBSD系(FreeBSD,Mac OS X等)でのみ使えるようです。
find . -type d -empty -delete
個人的には、「-delete」オプションが使える環境なら「-delete」。
「-delete」が使えないのなら、「-exec」を使うのがスマートかなーと思います。
今回参考にしたページ
Yahoo! 知恵袋 - UNIXで空のディレクトリの一覧を表示するには、どうすればいいですか?
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q138481003
技術メモ帳 - ■[unix]find の -delete オプション
http://d.hatena.ne.jp/lurker/20060703/1151936124
うまい棒blog - find -execとxargs
http://d.hatena.ne.jp/hogem/20090601/1243862119