この一連のコマンドで、{}
との\;
文字は何ですか?
find . -name '*.clj' -exec grep -r resources {} \;
男が見つけるを参照してください。(特に約の部分-exec
)
を使用-exec
して検出された各ファイルに対してコマンドを実行すると、{}
は検出された各ファイルの名前に置き換えられ、コマンドは次のように終了します。\;
この例では、現在のディレクトリ(.
)の下にある名前に一致するすべてのファイルで*.clj
、コマンドgrep -r resources
が実行されます(resources
これらの各ファイルに文字列が存在する場合はその文字列を検索します)。
-r
サブディレクトリを再帰的に検索するためのものであるため、実際には多少冗長です。これfind
はすでに実行されていることです。
検索では、-execパラメーターが残りのパラメーターを;まで取得します。(セミコロン)エスケープする必要があるため、\;。このスパン内で、{}は検査対象のファイル名に置き換えられます。
理解しやすいこの代替コマンドを検討してください。
find . -name *.clj | xargs grep -r resources
文字列「{}」は、処理中の現在のファイルに置き換えられます。エスケープされたセミコロンは、-execオプションのコマンド引数を終了します。