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