▼すべてを開く。
▲すべてを閉じる。
$ find -type d -empty -exec rmdir {} \;
findコマンドで、検索するディレクトリ「.」検索対象の種類を指定する「-type」対象がディレクトリであることを示す「d」サイズが0を示す「-empty」、検索結果を引数としてコマンドを実行する「-exec」、実行するコマンド「rmdir {}」コマンドの終了を表す「\;」を指定すると、findコマンドにより検索された空のディレクトリが削除される。
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 . -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) | |
検索結果のファイル名をフルパスで表示する |
$ find . -name dir1 -print ./dir1 ./tmp/dir1
findコマンドで検索するディレクトリ「.」(カレントディレクトリ)、検索対象をファイル名で指定することを示す「-name」検索するディレクトリ名「dir1」、検索結果の表示「-print」を指定すると、指定したカレントディレクトリの下にあるすべてのディレクトリから「dir1」を検索してその場所を表示する。
オプション | 意 味 |
---|---|
-name | 検索対象をファイル名で指定する |
検索結果のファイル名をフルパスで表示する |