次: , 上: 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が呼び出されたディ レクトリでコマンドが実行されるということで,`{}'が,マッチしたファ イルのベース名ではなく,開始ディレクトリからの相対パスに展開されること を意味します.