系统相关
首页 > 系统相关> > Linux xargs与exec(6)

Linux xargs与exec(6)

作者:互联网

xargs应用:


xargs的作用就是把管道符前面的输出作为xargs后面的命令的输入它的好处在于可以把本来两步或者多步才能完成的任务简单一步就能完成。

入门例子

touch {a..d}.txt

ls *.txt | xargs ls -l

命令输出结果

-rw-r--r-- 1 root root 0 9月  22 15:02 a.txt
-rw-r--r-- 1 root root 0 9月  22 15:02 b.txt
-rw-r--r-- 1 root root 0 9月  22 15:02 c.txt
-rw-r--r-- 1 root root 0 9月  22 15:02 d.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 
mv b.txt.bak b.txt.bak.bak1 
mv c.txt.bak c.txt.bak.bak1 
mv d.txt.bak d.txt.bak.bak1 

 

分组 -n

ls *.bak1 | xargs -t -n1 ls -l

ls -l a.txt.bak.bak1 
-rw-r--r-- 1 root root 0 9月  22 15:02 a.txt.bak.bak1
ls -l b.txt.bak.bak1 
-rw-r--r-- 1 root root 0 9月  22 15:02 b.txt.bak.bak1
ls -l c.txt.bak.bak1 
-rw-r--r-- 1 root root 0 9月  22 15:02 c.txt.bak.bak1
ls -l d.txt.bak.bak1 
-rw-r--r-- 1 root root 0 9月  22 15:02 d.txt.bak.bak1

exec应用:


使用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

标签:xargs,exec,--,bak1,Linux,txt,root,bak
来源: https://www.cnblogs.com/tanff/p/15320005.html