find -exec | xargs

 

exec 与 xargs的区别

xargs: 通过缓冲方式并以前面命令行的输出作为参数,随后的命令调用该参数

若忽略 xargs 的 options 来看的话,
cm1 | xargs cm2
可以单纯看成: cm2 `cm1`
因此, find .... | xargs rm 也可作 rm `find ...` 来处理.
然而, 若 find 的结果太多, 可能会超过rm 可能接受的最大argument数量而失败.
xargs优点:由于是批处理的,所以执行效率比较高(通过缓冲方式)
xargs缺点:有可能由于参数数量过多(成千上万),导致后面的命令执行失败
若换成 find .... -exec rm {} /; 的话,
因为rm 是"逐个 " item 去处理的, 则无此忧虑
 
例子:(在当前目录下查找包含hello字符的文件)
 
1。最傻方法:grep hello *  */*  */*/*
                     grep hello * -r -i
 
2。使用exec
[admin@b2b_search_115 test]$ find . -type f -print -exec grep "hello" {} /;
./file/test3
hello
./test1
hello
./test2
 
3。使用xargs
[admin@b2b_search_115 test]$ find . -type f -print | xargs grep hello     
./file/test3:hello
./test1:hello

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值