find /path/ -exec '{}'コマンドの+は何をしますか?

find /path/ -exec '{}'コマンドの+は何をしますか?

+中では何が起こっていますかfind /path/ -exec command '{}' +?相対的なfind /path/ -exec command '{}' \;

答え1

「+」は、見つかったすべてのファイルを1つの大きなコマンドラインにすることで、実行するコマンドの数を最小限に抑えます。

findコマンドが4つのファイルを見つけたとします。

find . -type f -exec command '{}' \;

生産します

command file1
command file2
command file3
command file4 

一方、

find . -type f -exec command '{}' \+

生産する

command file1 file2 file3 file4

答え2

マニュアルページから:

- コマンドの実行{}+

-execジョブのこのバリエーションは、選択したファイルで指定されたコマンドを実行しますが、コマンドラインは選択した各ファイル名を最後に追加することによって構成されます。コマンドの総呼び出し数は、一致するファイルの数よりはるかに少なくなります。 。コマンドラインは、xargsがコマンドラインを作成するのとほぼ同じ方法で作成されます。コマンドには「{}」インスタンスが1つだけ許可されます。このコマンドは起動ディレクトリで実行されます。

関連情報