![\find コマンドを使用します。 \+ と + [重複]](https://linux33.com/image/197453/%5Cfind%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20%5C%2B%20%E3%81%A8%20%2B%20%5B%E9%87%8D%E8%A4%87%5D.png)
次のfindコマンドを見て、それらの違いを知りたかったです。
find . -exec COMMAND {} \;
find . -exec COMMAND {} \+
find . -exec COMMAND {} +
答え1
find execには2つの構文があります。
find . -exec [cmd] {} \;
{} は find で見つかった結果のプレースホルダです。
;見つかった結果ごとに、cmdコマンドが見つかった結果を使用して一度実行されることを意味します。
実行は次のとおりです。cmd result1;コマンド結果2;
find . -exec [cmd] {} \+
{} は find で見つかった結果のプレースホルダです。
+は、見つかったすべての結果に対してcmdコマンドが見つかったすべての結果に対して実行されることを意味します。
実行方法は次のとおりです。cmd result1 result2 ... result N
+以外のfind execをいつ使用する必要がありますか?
-exec で実行されるツールは、複数のファイルを引数として受け入れません。
一度に多すぎるファイルに対してツールを実行すると、あまりにも多くのメモリを消費する可能性があります。
すべての結果を得るには時間がかかりますが、すぐに結果が得られることを願っています。