欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

【xargs】Linux xargs 命令 有大用

【xargs】Linux xargs 命令

       
字数 874阅读 524            


xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。

xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。

xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。

xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。

xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。

之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令!


   

xargs 是 execute arguments 的缩写,它的作用是从标准输入中读取内容,并将此内容传递给它要协助的命令,并作为那个命令的参数来执行。 

坊间有一种说法,将 xargs 解读为乘号(x)和参数(args)的合体,很形象地表达了 xargs 的作用所在。


   

# xargs --help

# man xargs

image.png

# rpm -qa | grep mariadb | xargs    rpm -e --nodeps

#   find /usr/lib/systemd/system/ -type f -name "*.service" -print0 | xargs -0    tar  -zcvf  unitFile.tar.gz

# find   /path/to/logDir   -maxdepth  1   -type f   -name "*.log"   -print0  |  xargs -0 rm -rf

注:xargs 默认是以空白字符(空格,tab,换行符)来分割记录的,因此文件名 ./file 1.log 被解释成了两个记录./file 和 1.log,不幸的是 rm 找不到这两个文件.为了解决此类问题,聪明的人类想出了一个办法,让 find 在打印出一个文件名之后接着输出一个 null 字符(' ')而不是换行符,然后再告诉 xargs 也用 null 字符来作为记录的分隔符,这就是 find 的-print 和 xargs 的-0 选项。    

find   -print  和 -print0 的区别: -print 每一个输出后会添加一个回车换行符,而-print0 则不会。    


   

#   ls /usr/lib/systemd/system/*.service | head -5 |   xargs -I   {}   basename {}

#   ls /usr/lib/systemd/system/*.service | head -5 |   xargs -I  X    basename  X

注:用 -I 参数指定marker,一般被指定的marker最好加一个单引号。     

image.png

           

# ls /usr/lib/systemd/system/*.service | head -5 | xargs -t  -i  cp  {}   /tmp/

image.png

            

注: -t 参数,在执行后面的命令前,先将命令打印出来, 默认使用  -i 指定的 marker就是 {},不过一般推荐使用 -I 指定 marker。


   

xargs命令    

http://man.linuxde.net/xargs


   

Linux xargs 命令 | 菜鸟教程    

http://www.runoob.com/linux/linux-comm-xargs.html


   

shell 学习之xargs    

http://wiki.jikexueyuan.com/project/shell-learning/xargs.html


   

Linux基础:xargs命令    

https://www.cnblogs.com/chyingp/p/linux-command-xargs.html


   

Linux xargs命令:一个给其他命令传递参数的过滤器    

http://c.biancheng.net/linux/xargs.html


   

xargs原理剖析及用法详解    

http://www.cnblogs.com/f-ck-need-u/p/5925923.html


   

Linux find运行机制详解    

http://www.cnblogs.com/f-ck-need-u/p/6995529.html

xargs - Unix, Linux Command    

http://www.tutorialspoint.com/unix_commands/xargs.htm


   

Linux and Unix xargs command tutorial with examples    

https://shapeshed.com/unix-xargs


   

12 Practical Examples of Linux Xargs Command for Beginners    

https://www.tecmint.com/xargs-command-examples


   

xargs: How To Control and Use Command Line Arguments    

https://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility



普通分类: