首页 > 代码库 > xargs与exec命令执行效率问题
xargs与exec命令执行效率问题
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.97Note:
- 文件比较少时,两者的执行效率相差几倍.
- 文件比较多时,两者的执行效率相差几十倍.
xargs与exec命令执行效率问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。