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命令中的一个参数而已,也是把输出导入输入

浙公网安备 33010602011771号