xargs的作用就是把管道符前面的输出作为xargs后面的命令的输入。它的好处在于可以把本来两步或者多步才能完成的任务简单一步就能完成。
入门例子
touch {a..d}.txt
ls *.txt | xargs ls -l 命令输出结果 -rw-r--r-- 1 root root 0 9月 22 15:02 a.txt |
具体实践
参数说明 -i{}把前面的对象使用{}取代 -t查看实际运行的命令 -n分组处理
参数替换 -i ls *.txt | xargs -i{} mv {} {}.bak 命令输出结果 a.txt.bak b.txt.bak c.txt.bak d.txt.bak
查看实际运行的命令 -t ls *.bak | xargs -t -i{} mv {} {}.bak1 mv a.txt.bak a.txt.bak.bak1
分组 -n ls *.bak1 | xargs -t -n1 ls -l ls -l a.txt.bak.bak1 |
使用find命令时,经常使用一个选项就是这个-exec了,可以达到和xargs同样的效果。
比如找出当前目录以.bak1结尾的文件 并且删除
find . -type f -name "*.bak1" -exec rm -rf {} \;
参考链接:
http://c.biancheng.net/linux/xargs.html
https://www.cnblogs.com/ftl1012/p/9250438.html