关于 find grep xargs 命令总结

Refrence

https://blog.csdn.net/yuhaojin/article/details/54948799


一、定义&区别:

  1. find 命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。
  2. grep 命令是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。
  3. find 命令把匹配到的文件传递给 xargs 命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。 在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配 到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题, 因而效率不高;而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还 是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。

二、find用法:

  1. find /tmp -size +10000c -and -mtime +2 # 在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
  2. find / -user fred -or -user george # 在/目录下查找用户是fred或者george的文件文件
  3. find /tmp ! -user panda # 在/tmp目录中查找所有不属于panda用户的文件

三、grep用法:

  1. grep 'test' d* :显示所有以d开头的文件中包含 test的行
  2. grep ‘test’ aa bb cc :显示在aa,bb,cc文件中包含test的行
  3. grep ‘[a-z]\{5\}’ aa :显示所有包含每行字符串至少有5个连续小写字符的字符串的行
  4. grep magic /usr/src :显示/usr/src目录下的文件(不含子目录)包含magic的行
  5. grep -r magic /usr/src :显示/usr/src目录下的文件(包含子目录)包含magic的行
  6. grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
  7. grep 'hello' $(find . -name *.c) -i*
  8. *grep 'hello' ./yuhaojin/*.c -i -n

四、find & grep 使用方法

  1. 从根目录开始查找所有扩展名为.log的文本文件,并找出包含 ”ERROR” 的行
    find / -type f -name "*.log" | xargs grep "ERROR"
  2. 从当前目录开始查找所有扩展名为.in的文本文件,并找出包含 “thermcontact” 的行
    find . -name "*.in" | xargs grep "thermcontact"

五、find & xargs使用方法

  1. find . -type f -print | xargs file :查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件
  2. find / -name “core” -print | xargs echo “” >/tmp/core.log :在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到 /tmp/core.log 文件中
  3. find . -type f -print | xargs grep “hostname” :用grep命令在所有的普通文件中搜索hostname这个词
  4. find ./ -mtime +3 -print|xargs rm -f –r :删除3天以前的所有东西 (find . -ctime +3 -exec rm -rf {} ;)
  5. find ./ -size 0 | xargs rm -f & :删除文件大小为零的文件
  6. find命令配合使用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值