linux xargs命令

本文深入解析了Linux中的xargs命令,展示了其在处理大量数据流和参数传递中的强大功能。通过具体实例,如避免rm命令参数过长错误、查找并操作文件等,读者可以学习如何高效利用xargs增强命令行技能。

转载自小白说我是狗的博客

1.xargs含义

翻译:从标准输入执行命令

lih:记忆:x 是执行的意思;args是参数列表的意思。===>就是把参数传到后面,用这些参数去执行后面的语句。(用循环可以达到同样的效果)

2.具体含义

xargs在linux中是个很有用的命令,它经常和其他命令组合起来使用,非常的灵活.
xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.由此 这个命令也是后置引用的一个强有力的替换.在一般使用过多参数的命令替换失败的时候,用xargs来替换它一般都能成功.通常情况下,xargs从管道或 者stdin中读取数据,但是它也能够从文件的输出中读取数据.

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

如:
bash$ ls -l
total 0
-rwxr-xr-x 2 root root 4096 2009-02-23 090218.txt
-rwxr-xr-x 2 root root 12288 2009-06-08 090607.txt
bash$ ls -l | xargs
090218.txt 090607.txt
bash$ find ~/mail -type f | xargs grep “Linux”
./misc:User-Agent: slrn/0.9.8.1 (Linux)
./sent-mail-jul-2005: hosted by the Linux Documentation Project.
./sent-mail-jul-2005: (Linux Documentation Project Site, rtf version)
./sent-mail-jul-2005: Subject: Criticism of Bozo’s Windows/Linux article

3.实例

xargs是一个非常强大的命令,可以取一个命令的输出作为另一个命令的参数。下面就是几个关于如何有效使用xargs命令的实例

  1. 当你使用rm命令去删除很多的文件时,你可能会得到错误信息:“/bin/rm Argument list too long – Linux”。这时可以用xargs来避免这个问题
find ~ -name *.log‘ -print0 | xargs -0 rm –f
  1. 获得/etc下所有以.conf结尾的文件。可以有多种方法获得如下结果。以下命令仅仅为了帮助大家理解如何使用xargs.find命令的输入结果一个接一个的传递给xargs,作为ls -l的参数。
find /etc -name "*.conf" | xargs ls –l
  1. 当你想下载一些URL,这些URL都保存在一个文件里,你可以以如下的方式使用xargs命令
cat url-list.txt | xargs wget –c
  1. 找出所有的.jpg格式的图片,并将其归档。
find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz
  1. 将所有的jpg图片文件复制到外置的硬盘中
ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值