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