xargs 的妙用
与find一起使用
场景:统计一个源代码目录中所有js文件的行数:
find . -type f -name "*.js" -print0 | xargs -0 wc -l
与grep一起使用
场景:删除匹配文件:
#测试文件:
echo "aaa" > file1
echo "bbb" > file2
echo "aaa" > file3
grep "aaa" file* -lZ | xargs -0 rm
执行后会删除file1和file3,grep输出用-Z选项来指定以0值字节作为终结符文件名(\0),xargs -0 读取输入并用0值字节终结符分隔文件名,然后删除匹配文件,-Z通常和-l结合使用。
与cp一起使用
场景:复制所有图片文件到 /data/images 目录下
ls *.jpg | xargs -n1 -I cp {} /data/images
xargs的一个选项-I,使用-I指定一个替换字符串{},这个字符串在xargs扩展时会被替换掉,当-I与xargs结合使用,每一个参数命令都会被执行一次
还没有评论,来说两句吧...