-exec command {} \;
- 検索後、コマンドcommandを実行する。検索結果をcommandに引き渡すには、{}をもちいる。
- \; の前に空白が必要。空白がないと、
find: `-exec' に引数が見つかりません
とか
find: -exec: no terminating ";" or "+"
というエラーになる。
- 複数のコマンドを実行する場合は、-exec を複数指定すればよい。
例:
find ~ -name '*bak' -exec rm {} \;
- 上記の例で-execにつづくrm {} \;が実行されるコマンド。最後の";"は-execのパラメタの終わりを示しており、その前の"\"は、";"がシェルに解釈されないようにエスケープする為のもの。
例:
ホームディレクトリ以下にある*~(emacsのバックアップファイル)を全て削除
$ find ~/ -name "*~" -exec rm {} \;
Subversionの作業コピーディレクトリから.svnディレクトリを全て削除する。
find . -name .svn -exec rm -rf {} \;
ディレクトリ配下のファイルをgrepする
(grepのオプション -H はファイル名表示、-n は行番号表示)
find ディレクトリ -type f -exec grep -nH 文字列 {} \;