Linux redhat系统中 xargs和exec的区别详解

xargs:是将管道前面的输出当作xargs的参数的输入(xargs的参数一般都是某个命令,也就是把前面命令的输出当作后面命令的输入)

用法: ls *.txt | xargs rm -rf 

xargs的特点:xargs后面的参数(命令),是使用linux系统文件缓冲放入方式来处理命令的操作(要想了解缓冲文件请转向该分类中的文件缓冲相关文章),因此它的效率是很高的.

xargs的缺点:如果参数超过某个命令的可能接受的最大argument数量,那么该执行就会失败

总结:xargs是一个单独的命令一般情况下是通过管道连接起来的,xargs是把别的命令当作它自己的参数

exec:它是把前面的输出当作一个数据结构(数组,泛型或者字典或其它,具体请查看内核源码)来进行处理,因此是利用了循环来处理这个数据结构

用法:find *.txt -exec rm -rf {} \  注意:结尾处必须要用\来结束操作

exec的特点:相对于xargs要使用管道连接exec使用起来更加简单,但是如果数据结构内容很大的情况下,效率肯定就会很低,但是没有xargs那样会失败的情况.

总结:exec只是find命令中的一个参数而已,也是把输出导入输入 

posted @ 2012-12-30 13:57  ..空白  阅读(448)  评论(0)    收藏  举报