84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
这里有个命令
find / -perm +7000 -exec ls -l {} \;
我想这样写
find / -perm +7000 | ls -l
发现不行,为什么?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
首先什么是管道, 即前一个程序的 标准输出 作为后一个程序的标准输入.
find 命令会在 终端(标准输出)上打印出 找到的文件; 如果ls -l的运行原理是 在 终端等待输入, 用户输入一个文件名, 打印出文件信息. 则这是你想要的. 但是ls -l 实际不会去 读终端.
在 终端等待输入, 用户输入一个文件名, 打印出文件信息
xargs则把前一个程序的标准输出转为了 后一个程序的 命令行参数. 比如 如果 find / -perm +7000 返回 /tmp/1.txt, 则 find / -perm +7000 | xargs ls -l 中 后一个命令实际是 ls -l /tmp/1.txt
find / -perm +7000
/tmp/1.txt
find / -perm +7000 | xargs ls -l
ls -l /tmp/1.txt
首先什么是管道, 即前一个程序的 标准输出 作为后一个程序的标准输入.
find 命令会在 终端(标准输出)上打印出 找到的文件; 如果ls -l的运行原理是
在 终端等待输入, 用户输入一个文件名, 打印出文件信息
. 则这是你想要的. 但是ls -l 实际不会去 读终端.xargs则把前一个程序的标准输出转为了 后一个程序的 命令行参数.
比如 如果
find / -perm +7000
返回/tmp/1.txt
, 则find / -perm +7000 | xargs ls -l
中 后一个命令实际是ls -l /tmp/1.txt