随笔 - 298  文章 - 377  trackbacks - 0
<2007年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用链接

留言簿(34)

随笔分类

随笔档案

文章档案

相册

收藏夹

搜索

  •  

最新评论

阅读排行榜

评论排行榜

1.定义&区别:

(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 

(2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。 

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

2.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用户的文件
   
3.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
    
4.find & grep 使用方法
  (1).从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行
     find / -type f -name "*.log" | xargs grep "ERROR"
  (2).例子:从当前目录开始查找所有扩展名为.in的文本文件,并找出包含”thermcontact”的行
      find . -name "*.in" | xargs grep "thermcontact"
      
5.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可以使用户对所匹配到的文件执行几乎所有的命令。 @import url(http://www.cppblog.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

exp:

find /opt/public/upload/images/ -name *._*.* |xargs rm -f

posted on 2017-09-26 17:22 聂文龙 阅读(217) 评论(0)  编辑 收藏 引用 所属分类: Linux

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理