Linux-shell编程_xargs命令详解

xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据。xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。

xargs是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,下面是一些如何有效使用xargs 的实用例子。

1. 当你尝试用rm删除out/target/目录下开头是cec_ctrl的一些的文件,你直接操作rm可能会得到一个错误信息:/bin/rm Argument list too long. 用xargs可以避免这个报错:

命令格式: find ./ -name 关键字 | xargs rm -rfv //加个v可以在终端显示操作的过程出来,不加就不显示

caizd@ubt144c:/work/jsh/RTD1295/rtd1295_1113$ find out/target/ -name cec_ctrl* |xargs rm -rfv
removed ‘out/target/product/kylin32/symbols/system/bin/cec_ctrl’
removed ‘out/target/product/kylin32/obj/EXECUTABLES/cec_ctrl_intermediates/export_includes’
removed ‘out/target/product/kylin32/obj/EXECUTABLES/cec_ctrl_intermediates/LINKED/cec_ctrl’
removed directory: ‘out/target/product/kylin32/obj/EXECUTABLES/cec_ctrl_intermediates/LINKED’
removed ‘out/target/product/kylin32/obj/EXECUTABLES/cec_ctrl_intermediates/cec_ctrl’
removed ‘out/target/product/kylin32/obj/EXECUTABLES/cec_ctrl_intermediates/PACKED/cec_ctrl’
removed directory: ‘out/target/product/kylin32/obj/EXECUTABLES/cec_ctrl_intermediates/PACKED’
removed ‘out/target/product/kylin32/obj/EXECUTABLES/cec_ctrl_intermediates/cec_ctrl.o’
removed ‘out/target/product/kylin32/obj/EXECUTABLES/cec_ctrl_intermediates/import_includes’
removed ‘out/target/product/kylin32/obj/EXECUTABLES/cec_ctrl_intermediates/cec_ctrl.P’

2. 获得system/etc/目录下所有*.fw 结尾的文件列表,在这个例子中使用xargs将find命令的输出传递给ls -l

命令格式: find system/etc -name “*.fw” | xargs ls –l

3. 查找所有的.c文件,并且压缩它

命令格式: find ./ -name *.c | xargs tar -cvzf source_code.tgz

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零意@

您的打赏将是我继续创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值