Linux xargs使用实例

xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。

如何使用xargs命令

语法:

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

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

[root@localhost ~]# echo "file1 file2 file3"|xargs -t touch
touch file1 file2 file3

如何限制参数的数量

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

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

[root@localhost ~]# echo "file1 file2 file3"|xargs -n1 -t touch
touch file1
touch file2
touch file3

如何运行多个命令

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

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

[root@localhost ~]# echo "file1 file2 file3"|xargs -t -I % sh -c 'touch %;ls -l %'
sh -c touch file1 file2 file3;ls -l file1 file2 file3
-rw-r--r--. 1 root root 0 Jan 30 00:18 file1
-rw-r--r--. 1 root root 0 Jan 30 00:18 file2
-rw-r--r--. 1 root root 0 Jan 30 00:18 file3

如何指定一个分隔符

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

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

[root@localhost ~]# echo -n file1#file2#file3#file4|xargs -d \# -t touch
touch file1 file2 file3 file4

如何从文件中读取条目

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

[root@localhost ~]# cat ip.txt
114.114.114.114
www.linuxprobe.com
202.102.128.68

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

[root@localhost ~]# xargs -a ip.txt -t -L 1 ping -c 1
ping -c 1 114.114.114.114
PING 114.114.114.114 (114.114.114.114) 56(84) bytes of data.
64 bytes from 114.114.114.114: icmp_seq=1 ttl=93 time=11.0 ms

--- 114.114.114.114 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 11.026/11.026/11.026/0.000 ms
ping -c 1 www.linuxprobe.com
PING www.linuxprobe.com.w.kunlunno.com (221.15.65.202) 56(84) bytes of data.
64 bytes from hn.kd.jz.adsl (221.15.65.202): icmp_seq=1 ttl=48 time=20.9 ms

--- www.linuxprobe.com.w.kunlunno.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 20.934/20.934/20.934/0.000 ms
ping -c 1 202.102.128.68
PING 202.102.128.68 (202.102.128.68) 56(84) bytes of data.
64 bytes from 202.102.128.68: icmp_seq=1 ttl=83 time=8.71 ms

--- 202.102.128.68 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 8.710/8.710/8.710/0.000 ms

xargs与find一起使用

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

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

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

[root@localhost ~]# find log/ -type f -print0|xargs --null tar -zcvf logs.tar.gzlog/anaconda/anaconda.log
log/anaconda/syslog
log/anaconda/program.log
log/anaconda/packaging.log
log/anaconda/storage.log
log/anaconda/ifcfg.log
log/anaconda/ks-script-TOLvJc.log
log/anaconda/ks-script-VRY9yQ.log
log/anaconda/ks-script-pjDijm.log
log/anaconda/journal.log
log/audit/audit.log
log/boot.log
log/boot.log-20200126
log/btmp
log/btmp-20200126
…
[root@localhost ~]# ll
total 604
-rw-------. 1 root root   1285 Dec 21 17:19 anaconda-ks.cfg
drwxr-xr-x. 8 root root   4096 Jan 29 23:02 log
-rw-r--r--. 1 root root 607566 Jan 30 00:58 logs.tar.gz

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/221916.html<

(0)
运维的头像运维
上一篇2025-04-15 06:21
下一篇 2025-04-15 06:23

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注