为什么“哪个cp | ls -l”不被视为“ls -l $(哪个cp)”?

时间:2014-12-07 12:07:10

标签: linux bash command-line pipe ls

根据Linux中的管道方法,第一个命令的输出应该被视为第二个命令的输入。因此,当我执行which cp | ls -l时,应将其视为ls -l $(which cp)

但是输出显示了别的东西。

为什么会这样?

1 个答案:

答案 0 :(得分:12)

ls不接受stdin的输入。如果您需要使用xargs

,可以解决此问题
which cp | xargs ls -l

这将调用ls -l(可能是多个,如果which返回多个)文件名作为命令行参数,没有标准输入。