码迷,mamicode.com
首页 > 其他好文 > 详细

xargs与exec命令执行效率问题

时间:2014-08-24 10:19:12      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:linux   shell   

xargs,exec都是命令传递的过滤器,捕捉前面一个命令的结果,并将其传递到后一个命令。简单点说:

  • -exec  要结合{}\;来用, {}表示前面查询的结果\;结束符,这是固定的写法.
  • xargs  要结合 |来操作,在处理批处理文件时,速度要快些。

做了一个小实验,统计整个Linux系统,文件大小在1k,10k,100k之上的文件,将其列出来:

  • 文件大小为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

  • 文件大小为10比较
[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

  • 文件大小为1k的比较

[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.97
Note:

  • 文件比较少时,两者的执行效率相差几倍.
  • 文件比较多时,两者的执行效率相差几十倍.


xargs与exec命令执行效率问题

标签:linux   shell   

原文地址:http://blog.csdn.net/jerry_1126/article/details/38678045

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!