「標準入力から名前を読み取る」とは、標準入力からxargs
受け取ったデータを受け取り、分割して、そのデータを使用して、引数で指定されたコマンドを実行することを意味します。デフォルトでは、空白または改行で分割さecho
れ、できるだけ多くの引数を使用して同時に実行されます。
-0
あなたの例のオプションは、xargs
空白や改行の代わりにnullバイトで入力を分割するように指示します。組み合わせることfind
の-print0
、これは空白や改行を含むファイル名を適切に処理することができます。
この-I
オプションは、新しいコマンドラインの作成方法を変更します。一度にできるだけ多くの引数を追加する代わりにxargs
、入力から一度に1つの名前を取得し、指定されたトークン({}
ここ)を探し、それを名前に置き換えます。
あなたの例で{}
は、はに与えられたコマンドテンプレートに存在しないxargs
ので、実際にxargs
はecho
、引数なしで実行するように指示されていますfind
。これを見るには、以下をドロップしwc
ます。
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0I{} echo
一連の空白行が表示されます...これと比較してください
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0I{} echo {}
そして
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0 echo
そして
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0
より良い理解を得るために。