我以为我明白了,直到现在...我有一个名为studio的可执行文件,它符号链接到我安装的Android Studio,我以为我可以通过

which studio | ls -l

但这不管用.它给我的相当于在当前目录中运行ls -l.

如果我跑which studio,我会得到/home/me/bin/studio.如果我运行ls -l /home/me/bin/studio,我会得到显示符号链接位置的预期输出.

那么为什么管道版本不起作用呢?我对管道有什么不了解的?

推荐答案

要做到这一点,你需要xargs:

which studio | xargs ls -l

man xargs开始:

xargs-从标准输入构建和执行命令行

要完全了解管道的工作原理,您可以阅读What is a simple explanation for how pipes work in BASH?:

Unix管道连接的是

Linux相关问答推荐

BASH-SCRIPT-在特定行合并两个文件

Linux在所有多行中用新值替换整个列

Linux和Windows x86程序集调用约定

shell中两个日期的天数差异

如何使 awk 输出更具可读性?

如何使用适用于 Linux 的 Dockerized SQL Server 设置 MSDTC

在不编写任何代码的情况下,是否有一个命令可以检索当前 shell 的亲和力中的可用内核数?

构建 python 映像时 Docker compose 问题,访问被拒绝或存储库不存在

Dockerfile:无法复制文件

内核是如何工作的?

Linux 应用程序分析

当命令太长时,命令行会自动覆盖

在使用文件时截断文件 (Linux)

在 Ubuntu 中重启 Nginx

Linux批量转换:使用转换更改jpg的质量但保留其名称

如何在 Bash 中对齐空格分隔表的列?

仅使用 proc 获取本地网络接口地址?

在 reverse-i-search (Ctrl+R ) , 历史上类似命令之间切换的任何方法

id_rsa.pub 文件 SSH 错误:格式无效

libaio.so.1:无法打开共享对象文件