xargsの他の-nフラグ値がfindコマンドで使用されている場合、違いはありますか?

xargsの他の-nフラグ値がfindコマンドで使用されている場合、違いはありますか?

誰かが find コマンドを使用して特定の基準に一致するファイルを検索し、結果を rm コマンドにパイプすると仮定します。

find / -type f -name "*.jpg" | xargs rm 

まず、rmなどのコマンドが受け入れることができる引数の数に制限があるように見えるため、見つかったファイルの数が多いと、上記のコマンドがエラーを引き起こすかどうかはわかりません。

その後、一度にrmにパラメータとして渡すファイルの数を設定できることがわかります。たとえば、-n3を使用するXargsは、rm実行コマンドに3つの引数を渡し、すべてのファイルが引数として渡されるまでこれを繰り返します。

今、xargsの-nオプションに異なる値を使用しますか?これらのコマンドラインは実行期間などどのような点で異なりますか?

find / -type f -name "*.jpg" | xargs rm 

find / -type f -name "*.jpg" | xargs -n1 rm 

find / -type f -name "*.jpg" | xargs -n2 rm 

find / -type f -name "*.jpg" | xargs -n3 rm

.
.
.

find / -type f -name "*.jpg" | xargs -n999 rm  

ベストアンサー1

前述の制限は、通常、exec単一のコマンドに限定されず、使用されるバッファに関連しています。目的xargsは正確にこの問題を解決することです。xargsコマンドにはできるだけ多くのパラメーターがあります。これにより、コマンド呼び出しが最小化され、パフォーマンスが向上します。これに関して、コマンドの引数の数を明示的に指定して減らしても-n利点はありません。-nコマンドに特定の数の引数が必要な場合は、各引数に対してコマンドを一度呼び出すことができる特別なケースを使用できます。 (同様の動作を容易にするためのfindオプション-execと特殊ターミネータもあります。)+

おすすめ記事