xargs,exec都是命令传递的过滤器,捕捉前面一个命令的结果,并将其传递到后一个命令。简单点说:
做了一个小实验,统计整个Linux系统,文件大小在1k,10k,100k之上的文件,将其列出来:
[root@linux ~]# time -p find / -size +100k | xargs ls -lart {} \;
real 7.29
user 1.31
sys 6.89
[root@nas2ds1 boot]# time -p find / -size +100k -exec ls -lart {} \;
real 31.00
user 6.06
sys 20.88
[root@linux ~]# time -p find / -size +10k | xargs ls -lart {} \;
real 12.43
user 3.96
sys 8.99
[root@linux ~]# time -p find / -size +10k -exec ls -lart {} \;
real 105.14
user 20.38
sys 67.65
[root@linux ~]# time -p find / -size +1k | xargs ls -lart {} \;
real 28.62
user 5.72
sys 24.01
[root@linux ~]# time -p find / -size +1k -exec ls -lart {} \;
real 703.89
user 129.08
sys 456.97Note:
原文:http://blog.csdn.net/jerry_1126/article/details/38678045