84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
这里有个命令
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