2017-06-20 6 views
0

私が理解するところでは、Linuxのxargsコマンドを使用して、あるコマンドの出力を取得し、別のコマンドの入力としてそれを渡すことができます。しかし、xargsを引数として引数に渡すと、パラメータなしで呼び出され、echoにデフォルト設定されていただけで以前は出力されていたものが実行されることに気付きました。私の質問は、xargsを引数として呼び出して出力を実行する理由です。xargs xargsがxargsをスクリーンに印刷したものを実行するのはなぜですか?

$ echo ls | xargs 

ls 

$ echo ls | xargs xargs 
AppData 
'Application Data' 
centos-7.box 
Contacts 
Cookies 
Desktop 
Documents 
Downloads 
Dropbox 
+0

スタックオーバーフローは、プログラミングや開発の質問のためのサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザ](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 – jww

答えて

0
  • echo fooプリントfoo
  • したがって、echo foo | xargs barは入力なしのbar fooを実行します。 bar foo </dev/nullに相当します。
  • したがって、echo ls | xargs xargsは入力なしのxargs lsを実行します。 xargs ls </dev/nullに相当します。
  • xargs ls入力実行なしls 1回。
  • 今後

、あなたはそれが役に立つことを実行する前にコマンドを出力しますxargs-tフラグを使用して見つけるかもしれない:

$ echo foo | xargs -t xargs -t 
xargs -t foo 
foo 
xargs: foo: No such file or directory 
+0

ありがとう、素晴らしい説明。 –

関連する問題