linux - 为什么 "which cp | ls -l "不被视为 "ls -l $(which cp)"?

标签 linux bash command-line pipe ls

根据 Linux 中的管道方法,第一个命令的输出应该被视为第二个命令的输入。所以当我在做 which cp | ls -l,应该当作ls -l $(which cp)

但输出显示的是其他内容。

为什么会这样?

最佳答案

ls 不接受来自 stdin 的输入。如果需要,您可以使用 xargs 解决此问题:

which cp | xargs ls -l

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

关于linux - 为什么 "which cp | ls -l "不被视为 "ls -l $(which cp)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27342434/

相关文章:

linux - Docker Bash 没有颜色

linux - echo、grep 和设置变量问题

linux - 用变量替换文本

shell - 如何在 Google Colab 中运行 shell(终端)?

java - 代码在 Netbeans 中编译并运行,但不在 java 命令行中编译和运行

php - 将多行linux发送到PHP exec()

c - 如何更改C中的工作目录?

linux - 大于/小于中断 bash 脚本的多个 -a

c++ - 如何在我的 Linux 主机上安装 Raspberry Pi 交叉编译器?

bash - 如何从命令行打印截止日期前的天数?