标签: linux bash command-line pipe ls
根据Linux中的管道方法,第一个命令的输出应该被视为第二个命令的输入。因此,当我执行which cp | ls -l时,应将其视为ls -l $(which cp)
which cp | ls -l
ls -l $(which cp)
但是输出显示了别的东西。
为什么会这样?
答案 0 :(得分:12)
ls不接受stdin的输入。如果您需要使用xargs:
ls
stdin
xargs
which cp | xargs ls -l
这将调用ls -l(可能是多个,如果which返回多个)文件名作为命令行参数,没有标准输入。
ls -l
which