2014-12-07 84 views
4

根據Linux中的管道方法,第一個命令的輸出應該被視爲第二個命令的輸入。所以當我在做which cp | ls -l時,它應該被視爲ls -l $(which cp)

但是輸出顯示了別的東西。

爲什麼這麼說?

+0

運行它時會顯示什麼?還要考慮一下可能不會返回值的事實。 – tvCa 2014-12-07 12:10:05

+0

它列出當前目錄中有關文件/目錄的信息。它顯示與「ls -l」相同的輸出。 – 2014-12-08 13:15:25

回答

12

ls不接受來自stdin的輸入。您可以通過使用xargs解決這個,如果你需要:

which cp | xargs ls -l 

這將調用ls -l與(可能是多個,如果which是返回不止一個)的文件名作爲命令行參數,沒有標準輸入。