2017-06-20 71 views
0

根據我的理解,Linux中的xargs命令可以用於輸出一個命令並將其作爲另一個命令的輸入。然而,我注意到將xargs作爲參數傳遞給它本身會執行之前只是在沒有參數的情況下被調用的輸出,並且默認爲回顯。我的問題是爲什麼調用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

Stack Overflow是用於編程和發展問題的站點。這個問題似乎與題目無關,因爲它不涉及編程或開發。請參閱幫助中心的[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic)。也許[超級用戶](http://superuser.com/)或[Unix&Linux堆棧交換](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一次。

在未來,你可能會發現使用-t標誌xargs,其運行之前打印命令:

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

謝謝,很好的解釋。 –