\; \+ および + を使用した find コマンド

\; \+ および + を使用した find コマンド

次のような find コマンドを見たことがありますが、それらの違いが何なのか疑問に思っています。

find . -exec COMMAND {} \;
find . -exec COMMAND {} \+
find . -exec COMMAND {} +

答え1

find exec には 2 つの構文があります。

find . -exec [cmd] {} \;

{}はfindによって見つかった結果のプレースホルダーです

; 見つかった結果ごとに、見つかった結果を使用してコマンド cmd が 1 回実行されることを示します。

次のように実行されます: cmd result1; cmd result2; ...; cmd result N

find . -exec [cmd] {} \+

{}はfindによって見つかった結果のプレースホルダーです

+ 見つかったすべての結果に対して、見つかったすべての結果を使用してコマンド cmd が実行されることを示します。

次のように実行されます: cmd result1 result2 ... result N

+以外でfind exec;を使うべき時

-exec で実行されるツールは、引数として複数のファイルを受け入れません。

一度に多数のファイルに対してツールを実行すると、メモリが大量に消費される可能性があります。

すべての結果を得るには時間がかかりますが、できるだけ早く結果を得たいと思っています。

関連情報