码迷,mamicode.com
首页 > 其他好文 > 详细

xargs

时间:2018-04-14 11:13:19      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:没有   cto   tree   rect   结果   命令   空白   image   tar   

通常学习linux的一个关键是命令,通过一个命令完成一些事情。有时候为了更高效的完成一些事情,需要把注意力放到命令的参数上面。xargs就是用来处理参数的。


xargs处理完的参数默认是通过/bin/echo来执行,参数之间通过空白符号进行分割(当然可以通过-d选项指定),通过-n指定一次需要被执行的参数的个数。比如:

luohaonan@DESKTOP-LHN ~
$ echo "A b C d E f G H" | xargs -n2
A b
C d
E f
G H

luohaonan@DESKTOP-LHN ~
$

 

luohaonan@DESKTOP-LHN ~
$ echo "A:b:C:d:E:f:G:H" | xargs -d: -n2
A b
C d
E f
G H

luohaonan@DESKTOP-LHN ~
$


下面是xargs的几个简单举例:

#当然下面这个只是个夸张的例子,完全没有这么麻烦,只是举例而已:
pi@raspberrypi:~/test $ tree . ├── a.c ├── a.txt ├── b.c ├── b.txt ├── c.c ├── c.txt └── txtdir 1 directory, 6 files pi@raspberrypi:~/test $ ls *.txt | xargs -n1 -I{} mv {} ./txtdir pi@raspberrypi:~/test $ tree . ├── a.c ├── b.c ├── c.c └── txtdir ├── a.txt ├── b.txt └── c.txt 1 directory, 6 files pi@raspberrypi:~/test $
#注意,通过xargs --help可以知道-I是替换的意思,也就是xargs把参数进行替换的操作,其中的{}代表的就是那个参数,
#在最后的命令部分"mv {} ./txtdir" 就对前面那个{}进行引用,也就是说我们并没有进行参数的替换

xargs&find

#当xargs与find一起工作的时候find使用-print0用以把查找到的结果通过不可见字符NULL进行分割
#然后xargs通过-0选项指定参数的分割方式为不可见字符NULL
#详见man find部分与xargs --help的部分说明。
pi@raspberrypi:~/test $ ls a.c b.c c.c txtdir pi@raspberrypi:~/test $ find . -type f -name "*.c" -print0 | xargs -0 rm -f pi@raspberrypi:~/test $ ls txtdir pi@raspberrypi:~/test $

技术分享图片

技术分享图片

 


 

参考:这里

 

xargs

标签:没有   cto   tree   rect   结果   命令   空白   image   tar   

原文地址:https://www.cnblogs.com/luohaonan/p/8830470.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!