GNU/Linux >> Linux の 問題 >  >> Linux

Xargs:オプションの順序は重要ですか?

入力0

echo foo | xargs -L 1 -I '{}' echo '{}'

出力0

foo

入力1

echo foo | xargs -I '{}' -L 1 echo '{}'

出力1

{} foo

xargsのオプションの順序を変更すると出力が変わるのはなぜですか?

バージョン:xargs (GNU findutils) 4.6.0

承認された回答:

xargsに指定されたオプションが競合する場合、順序が重要になる可能性があります。

IEEE Std 1003.1-2008、2016 Edition / Open Group Base Specification Issue 7は、xargsの仕様に次のテキストを追加しました。

-私 -L 、および -n オプションは相互に排他的です。一部の実装では、コマンドラインで複数指定されている場合は最後に指定されたものを使用します。他の実装では、オプションの組み合わせをさまざまな方法で処理します。

これにより、xargsの多くの実装の動作がコード化され、マニュアルページにPWB/Unixの元のバージョンに戻ります

フラグの競合がある場合(例: -l <​​/ strong> 対-n )、最後のフラグが優先されます。

xargsのGNUバージョンでは、-L 以前の-Iを無効にします オプション。したがって、2番目の例では、

echo foo | xargs -I '{}' -L 1 echo '{}'

{} echoに渡される単なる通常の引数です 、置換は行われません。

IEEE Std 1003.1、2004 Edition / Open Group Base SpecificationIssue6との比較。


Linux
  1. POSIXとは何ですか? Linux / UNIXユーザーにとってなぜ重要なのですか?

  2. Rm -rはどのように再帰的に削除しますか?どのような順序で?

  3. `while Ifs =Read ..`で、なぜIfsは効果がないのですか?

  1. エコー$は何ですか?行う??

  2. Bashスクリプトで1行ずつ読む

  3. Linux カーネルは __init 呼び出しの順序をどのように決定しますか?

  1. set -x は何をしますか?

  2. Linux/Unix では、.tar.gz と .zip はどちらが重要ですか?

  3. xargs --replace/-I 単一引数の場合