2014-12-07 72 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是返回不止一个)的文件名作为命令行参数,没有标准输入。