【发布时间】:2015-10-09 10:13:02
【问题描述】:
我从 The Linux command line 一书中学习命令行,我有一个疑问。
不应该
ls -l $(which cp)
和which cp | ls -l 有相同的输出吗?
因为我正在获取 which cp 的输出并将其传递给 ls -l
但这并没有按预期工作。 which cp | ls -l 改为显示 pwd 的内容
【问题讨论】:
我从 The Linux command line 一书中学习命令行,我有一个疑问。
不应该
ls -l $(which cp)
和which cp | ls -l 有相同的输出吗?
因为我正在获取 which cp 的输出并将其传递给 ls -l
但这并没有按预期工作。 which cp | ls -l 改为显示 pwd 的内容
【问题讨论】:
ls 不关心标准输入中的内容。
echo anything | ls -l
^^^
由于您没有提供要列出的目录,它将列出pwd。
【讨论】:
在第一种情况下,ls 接收结果作为参数,在第二种情况下,它在输入流 (stdin) 中接收它,在这种情况下被忽略。
您可以使用xargs 将输入流转换为参数:
which cp | xargs ls -l
【讨论】: