在使用find命令的-exec选项处理匹配到的文件时,find命令将所有匹配到的文件
一起传递给exec。


不幸的是,有些系统对能够传递给exec的命令长度有限制,这样find命令运行几
分钟之后就算出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。



这就是xargs的用处所在,特别是与find命令一起使用,exec会发起多个进程,而
xargs只有一个。


: find ./ -perm -7 -print | xargs chmod o-w 


查找权限为7的文件并传递给chmod处理。


** xargs

xargs从标准输入接受参数,默认是以多个空格或者换行符作为间隔符。但是,由
于有些文件名会包含多个空格和换行符,因此,在使用的时候,需要加上-0选项。
同时,如果是find命令,你需要加上-print0选项,以使其输出匹配xargs的输入。

09-15 03:16