xargs命令怎么用(xargs,开发技术)

时间:2024-05-06 02:24:08 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理,下面为大家分享一下xargs命令使用方法。

xargs命令怎么用

如何使用xargs命令

语法:

xargs[OPTIONS][COMMAND[initial-arguments]]

举一个例子:我们用管道符传输到xargs,并为每个参数运行touch命令,-t表示在执行之前先打印,创建三个文件:

[root@localhost~]#echo"file1file2file3"|xargs-ttouchtouchfile1file2file3

如何限制参数的数量

默认情况下,传递给命令的参数数量由系统限制决定。-n选项指定要传递给命令的参数个数。xargs根据需要多次运行指定的命令,直到所有参数都用完为止。

下面例子指定每次传递一个参数:

[root@localhost~]#echo"file1file2file3"|xargs-n1-ttouchtouchfile1touchfile2touchfile3

如何运行多个命令

要使用xargs运行多个命令,请使用-i或者-I选项。在-i或者-I后面自定义一个传递参数符号,所有匹配的项都会替换为传递给xargs的参数。

下面例子时xargs运行两条命令,先touch创建文件,然后ls列出来:

[root@localhost~]#echo"file1file2file3"|xargs-t-I%sh-c'touch%;ls-l%'sh-ctouchfile1file2file3;ls-lfile1file2file3-rw-r--r--.1rootroot0Jan3000:18file1-rw-r--r--.1rootroot0Jan3000:18file2-rw-r--r--.1rootroot0Jan3000:18file3

如何指定一个分隔符

使用-d或者–delimiter选项设置自定义分隔符,可以是单个字符,也可以是以\ 开头的转义字符。

下面例子使用#做分隔符,echo命令使用了-n选项,意思是不输出新行:

[root@localhost~]#echo-nfile1#file2#file3#file4|xargs-d\#-ttouchtouchfile1file2file3file4

如何从文件中读取条目

xargs命令还可以从文件读取条目,而不是从标准输入读取条目。使用-a选项,后跟文件名。 创建一个ip.txt的文件,一会使用xargs命令ping里面的每一个地址:

[root@localhost~]#catip.txt114.114.114.114www.linuxprobe.com202.102.128.68

使用-L 1选项,该选项表示xargs一次读取一行。如果省略此选项,xargs将把所有ip传递给一个ping命令。

[root@localhost~]#xargs-aip.txt-t-L1ping-c1ping-c1114.114.114.114PING114.114.114.114(114.114.114.114)56(84)bytesofdata.64bytesfrom114.114.114.114:icmp_seq=1ttl=93time=11.0ms---114.114.114.114pingstatistics---1packetstransmitted,1received,0%packetloss,time0msrttmin/avg/max/mdev=11.026/11.026/11.026/0.000msping-c1www.linuxprobe.comPINGwww.linuxprobe.com.w.kunlunno.com(221.15.65.202)56(84)bytesofdata.64bytesfromhn.kd.jz.adsl(221.15.65.202):icmp_seq=1ttl=48time=20.9ms---www.linuxprobe.com.w.kunlunno.compingstatistics---1packetstransmitted,1received,0%packetloss,time0msrttmin/avg/max/mdev=20.934/20.934/20.934/0.000msping-c1202.102.128.68PING202.102.128.68(202.102.128.68)56(84)bytesofdata.64bytesfrom202.102.128.68:icmp_seq=1ttl=83time=8.71ms---202.102.128.68pingstatistics---1packetstransmitted,1received,0%packetloss,time0msrttmin/avg/max/mdev=8.710/8.710/8.710/0.000ms

xargs与find一起使用

xargs通常与find命令结合使用。您可以使用find搜索特定文件,然后使用xargs对这些文件执行操作。

若要避免包含换行符或其他特殊字符的文件名出现问题,请始终使用find的-print0选项,这样可以使find打印完整的文件名,配合xargs命令使用-0或者–null选项可以正确的解释。

下面例子中,查找log文件夹下面的类型为file的所有文件,打包压缩起来:

[root@localhost~]#findlog/-typef-print0|xargs--nulltar-zcvflogs.tar.gzlog/anaconda/anaconda.loglog/anaconda/sysloglog/anaconda/program.loglog/anaconda/packaging.loglog/anaconda/storage.loglog/anaconda/ifcfg.loglog/anaconda/ks-script-TOLvJc.loglog/anaconda/ks-script-VRY9yQ.loglog/anaconda/ks-script-pjDijm.loglog/anaconda/journal.loglog/audit/audit.loglog/boot.loglog/boot.log-20200126log/btmplog/btmp-20200126…[root@localhost~]#lltotal604-rw-------.1rootroot1285Dec2117:19anaconda-ks.cfgdrwxr-xr-x.8rootroot4096Jan2923:02log-rw-r--r--.1rootroot607566Jan3000:58logs.tar.gz
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:xargs命令怎么用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:linux系统中如何使用rz、sz命令下一篇:

6 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18