为什么“哪个cp | ls -l”不会被视为“ls -l $(哪个cp)”?
问题描述:
根据Linux中的管道方法,第一个命令的输出应该被视为第二个命令的输入。所以当我在做which cp | ls -l
时,它应该被视为ls -l $(which cp)
但是输出显示了别的东西。
为什么这么说?
答
ls
不接受来自stdin
的输入。您可以通过使用xargs
解决这个,如果你需要:
which cp | xargs ls -l
这将调用ls -l
与(可能是多个,如果which
是返回不止一个)的文件名作为命令行参数,没有标准输入。
运行它时会显示什么?还要考虑一下可能不会返回值的事实。 – tvCa 2014-12-07 12:10:05
它列出当前目录中有关文件/目录的信息。它显示与“ls -l”相同的输出。 – 2014-12-08 13:15:25