すべてを

▼開く

閉じる▲

空のディレクトリを検索して削除する

○カレントディレクトリ下にある空のディレクトリを検索して削除する

findコマンドでディレクトリと検索オプションを指定する
$ find -type d -empty -exec rmdir {} \;

findコマンドで、検索するディレクトリ「.」検索対象の種類を指定する「-type」対象がディレクトリであることを示す「d」サイズが0を示す「-empty」、検索結果を引数としてコマンドを実行する「-exec」、実行するコマンド「rmdir {}」コマンドの終了を表す「\;」を指定すると、findコマンドにより検索された空のディレクトリが削除される。

実行させるコマンド部分「rm {} \;」の意味

rm 実行するコマンド
{} findの検索結果に置き換えられる部分
\; コマンドの終了(エスケープ文字「\」と終了記号「;」)

「{}」は、findの検索結果のファイル名で置き換えられる。「\」は、シェルが「;」を解釈するのを防ぐためのエスケープ文字で、「;」までがコマンド部分である。。

○削除の許可を求めながらコマンドを実行する

一度にコマンドを実行せずに、コマンドの実行許可を逐次求めながら行うには、「-exec」の代わりに「-ok」を指定する。コマンドを実行する場合は「y」、実行せずにスキップする場合は「n」を入力する。

findコマンドでディレクトリと検索オプションを指定する
$ find -type d -empty -ok rmdir {} \;
< rmdir ... ./dirx/dir1 > ? y
find: ./dirx/dir1: そのようなファイルやディレクトリはありません

オプション 意 味
-type 検索対象の種類を指定する
d 検索対象の種類がディレクトリであることを示す引数
-empty 検索対象が空(サイズが0)
-exec 検索結果を引数としてコマンドを実行する
-ok コマンド実行時に逐次実行許可を求める

空のディレクトリを検索する

○カレントディレクトリ下にある空のディレクトリを検索する

findコマンドでディレクトリと検索オプションを指定する
$ find . -type d -empty -print
./.gnome2/nautilus-scripts
./.gnome/application-info
./.gnome2_private
./evolution/views/addressbook
./evolution/views/calendar
./evolution/views/mail
./evolution/views/tasks

findコマンドで、検索するディレクトリ「.」検索対象の種類を指定する「-type」対象がディレクトリであることを示す「d」サイズが0を示す「-empty」、検索結果の表示「-print」を指定すると、ディレクトリにあるすべての空のディレクトリを表示する。

オプション 意 味
-type 検索対象の種類を指定する
d 検索対象の種類がディレクトリであることを示す引数
-empty 検索対象が空(サイズが0)
-print 検索結果のファイル名をフルパスで表示する