Linux教程

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

这篇关于Linux xargs与exec(6)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!