这里有个命令
find / -perm +7000 -exec ls -l {} \;
我想这样写
find / -perm +7000 | ls -l
发现不行,为什么?
这里有个命令
find / -perm +7000 -exec ls -l {} \;
我想这样写
find / -perm +7000 | ls -l
发现不行,为什么?
1 回答2.7k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
2 回答1.3k 阅读
2 回答1.1k 阅读✓ 已解决
3 回答1.7k 阅读
1 回答1.1k 阅读✓ 已解决
首先什么是管道, 即前一个程序的 标准输出 作为后一个程序的标准输入.
find 命令会在 终端(标准输出)上打印出 找到的文件; 如果ls -l的运行原理是
在 终端等待输入, 用户输入一个文件名, 打印出文件信息
. 则这是你想要的. 但是ls -l 实际不会去 读终端.xargs则把前一个程序的标准输出转为了 后一个程序的 命令行参数.
比如 如果
find / -perm +7000
返回/tmp/1.txt
, 则find / -perm +7000 | xargs ls -l
中 后一个命令实际是ls -l /tmp/1.txt