在使用find命令的-exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递给exec执行。不幸的是,有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。

让我们来看看xargs命令是如何同find命令一起使用的,并给出一些例子。

下面的例子查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件:
$find / -type f -print | xargs file
/etc/protocols: English text
/etc/security : ASCII text

下面的例子在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中:
$ find . -name "core" -print | xargs echo "" >/tmp/core.log
下面的例子在/apps/audit目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:
$ find /apps/audit -perm -7 -print | xargs chmod o-w
在下面的例子中,我们用grep命令在所有的普通文件中搜索device这个词:
$ find / -type f -print | xargs grep "device"
在下面的例子中,我们用grep命令在当前目录下的所有普通文件中搜索DBO这个词:
$ find . -name *\-type f -print | xargs grep "DBO"
注意,在上面的例子中, \用来取消find命令中的*在shell中的特殊含义。

转载于:https://blog.51cto.com/happyland/710370

[unix shell笔记] - 和find命令结合使用xargs命令相关推荐

  1. linux xargs命令选项,使用xargs命令在Linux中执行多个操作 | MOS86

    Xargs是一个有用的命令,充当两个命令之间的桥梁,读取一个输出并执行另一个读取的项目.当用户正在搜索模式,删除和重命名文件等时,该命令最常用于场景中. 在其基本形式中,xargs从标准输入(或STD ...

  2. 每天学一点儿shell:xargs 命令

    文章目录 一.标准输入和管道 二.xargs命令的作用 三.xargs命令的实例 1.创建多个文件目录 2.多行内容变单行输出 3.将内容按照","分隔 4.找到所有的txt文件并 ...

  3. linux find命令格式及find命令详解

    http://os.51cto.com/art/200908/141119.htm 1.find命令的一般形式为: find pathname -options [-print -exec -ok . ...

  4. linux xargs命令,xargs 命令教程

    xargs是 Unix 系统的一个很有用的命令,但是常常被忽视,很多人不了解它的用法. 本文介绍如何使用这个命令. 一.标准输入与管道命令 Unix 命令都带有参数,有些命令可以接受"标准输 ...

  5. linux下xargs命令用法详解

    From:http://biancheng.dnbcw.info/shell/268829.html xargs在 linux中是个很有用的命令,它经常和其他命令组合起来使用,非常的灵活. xargs ...

  6. xargs 命令教程

    xargs 命令教程 转自:http://www.ruanyifeng.com/blog/2019/08/xargs-tutorial.html 作者: 阮一峰 日期: 2019年8月 8日 xarg ...

  7. xargs命令学习,转载于阮一峰博客

    一.标准输入与管道命令 Unix 命令都带有参数,有些命令可以接受"标准输入"(stdin)作为参数. $ cat /etc/passwd | grep root 上面的代码使用了 ...

  8. PHP exec xargs 不执行,关于 ‘--exec’ 参数( find 命令)及介绍 ‘xargs ’命令区别(新版)...

    ###前言: find 命令一直都是系统管理员的常用命令之一, 其参数中 "-exec" 尤其实用.而 "xargs" 命令,针对查询也有属于自己的见解.本文着 ...

  9. 搜索系统中所有以.repo结尾的文件并删除(find命令详解及xargs命令详解)

    find / -name *.repo | xargs rm –rf //搜索以.repo结尾的文件并删除 find命令详解 精细查找文件或目录d find [ 查找范围 ] [ 查找条件表达式 ]常 ...

最新文章

  1. ROS系统——动态修改realsense相机参数方法
  2. 【error】error: field * has incomplete type
  3. 如何通过结构化智能体完成物理构造任务?| 技术头条
  4. Java多线程(十)之ReentrantReadWriteLock深入分析
  5. python生成元组_python 列表生成、元组、字典
  6. Unity SRP自定义渲染管线 -- 2.Custom Shaders
  7. 云上安全保护伞--SLS威胁情报集成实战
  8. TypeError: cannot unpack non-iterable int object查找指定文件夹下指定文件类型的数量
  9. django -orm操作总结
  10. WDS+ADK+MDT 部署轻触式系统安装(1)《准备》
  11. php 5.3 include 上层 function,php5.3开始出现的Function ereg() is deprecated Error问题解决办法...
  12. 常用windows XP 系统命令
  13. 杂学第八篇:最近成功实现用applescript检测手机号码是否注册imessage,有需要的带价联系
  14. logback根据业务分开打印日志
  15. python切片是什么意思_python中的切片是什么?(实例解析)
  16. 计算机及通讯公司转正申请(范文)
  17. 阿里云服务器入门基础教程汇总(新手)
  18. 微信小程序----性别选择,并实现数据渲染
  19. gmail邮箱延迟收到问题
  20. centos安装后要做的事情

热门文章

  1. java基础—Hashtable,HashMap,TreeMap的差别
  2. Objective-C之成魔之路【13-预处理程序】
  3. oracle record is locked by another user
  4. php chr() ord()中文截取乱码问题解决方法
  5. 菜鸟网络 | 寄件业务的产品逻辑
  6. 精准评论,为何广受娱乐类产品的欢迎?
  7. 独家揭秘 | 腾讯、Uber都在哪儿招人
  8. 目测这个APP要火啦,只有一个功能就要干倒小咖秀?
  9. linux系统开发环境配置
  10. shell中trap捕捉到信号的处理