Next: , Up: Run Commands


3.3.1 単一のファイル

ここに一つのファイルへのコマンドを,一度に実行する方法があります.

— Action: -execdir command ;

commandを実行します.0のステータスが返される場合は真です. findは,‘-exec’以降のすべての引数を,‘;’までの内容から 成り立つ引数をコマンドとして受けとります.それは,文字列‘{}’を現 在のファイル名で置換し,コマンドにそれがある場所で処理されます.これら の構文はどちらも,シェルによる展開を防ぐために(‘\’を用いて)エスケー プしたり,引用符で囲む必要があります.コマンドは,find を実行し ているディレクトリで実行されます.

例えば,現在のディレクトリのそれぞれのCのヘッダファイルを,ファイル /tmp/masterと比較するために以下のようにします.

          find . -name '*.h' -execdir diff -u '{}' /tmp/master ';'

それに似たもう一つのオプションとして,‘-exec’がサポートされていま すが,余りセキュリティーが高くありません.‘-exec’に関するセキュリ ティーの問題の議論は,See Security Considerations.

— Action: -exec command ;

この,余りセキュリティーの高くない‘-execdir’アクションの亜種は, POSIXで指定されているものです.主な違いは,findが呼び出されたディ レクトリでコマンドが実行されるということで,‘{}’が,マッチしたファ イルのベース名ではなく,開始ディレクトリからの相対パスに展開されること を意味します.