一般情况下xargs只处理一个参数,因此可以这样使用,最后的rm会自动补齐一个参数:
1find . | grep hello | xargs rm
但是有时候需要多个参数才能够正常运行,这时候怎么办呢?可以这样:
1ls -1 2016*.log | xargs -I % -t tar czvf %.tar.gz % --remove-files
上述命令的意思是将当前目录中所有2016*.log
文件使用tar打包成tar.gz文件,并删除源文件。其中:
- xargs -I 参数指定了
%
作为占位符。它将指代ls
命令返回的字符串作为参数。然后在后面的命令中,使用%
代替了参数值; - xargs -t 参数作用是打印命令行
其他参数说明:
- tar –remove-files 参数的作用是压缩完成之后删除源文件