查找目录下的所有文件中是否含有某个字符串 
find .|xargs grep -ri "IBM" 
查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 

find .|xargs grep -ri "IBM" -l 


(1)find命令的一般形式 
     find pathname -options [-print -exec -ok] 
     pathname :find命令所查找的目录路径。如用"."来表示当前的目录,用/来表示系统根目录 
     -print :find命令将匹配的文件输出到标准输出 
     -exec: find命令对匹配的文件执行该参数所给出的shell命令,相应的命令形式为 
       'command'{} \; (注意{}和\之间的空格) 
     -ok 和 -exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 
   options有如下几种: 
   -name :按照文件名查找文件 
   -perm :按照文件权限来查找文件 
   -user :按照文件属主来查找文件 
   -group :按照文件所属的组来查找文件 
   -mtime -n +n 按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。find命令还有-atime 和-ctime选项,但它们都和-mtime选项相似。 
   -size n[c]查找文件长度为n块的文件,带有c时表示文件长度以字节计。 
   -nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在 
   -newer file1 !file2查找更改时间比文件file1新但比文件file2旧的文件 
   -depth 先查找指定目录有无匹配文件,若无则再在子目录中查找 
   -type 查找某一类型的文件,如 
     b :块设备文件 
     d:目录 
     e:字符设备文件 
     p;管道文件 
     l:符号链接文件 
     f:普通文件 
 (3)find命令举例 
     find -name "*.txt" -print 查找txt结尾的文件并输出到屏幕上 
     find /cmd ".sh" -print 查找/cmd目录下所有sh文件,并输出 
     find . -perm 755 -print 查找当前目录下权限为755的文件,并输出 
     find `pwd` -user root -print 查找当前目录下属主为root的文件,并输出 
     find ./ -group sunwill -print 查找当前目录下所属主是sunwill的文件 
     find /var -mtime -5 -print 查找/var目录下更改时间为5天内的所有文件 
     find /var -mtime +5 -print 查找/var目录下更改时间为5天以前的所有文件 
     find /var -newer "myfile1" ! -newer "myfile2" -print 查找/var目录下比myfile1新,但是比myfile2旧的所有文件。 
     find /var -type d -print 查找/var目录下所有目录 
     find /var -type l -print 查找/var目录下所有的符号链接文件。 
     find . -size +1000000c -print 查找当前目录下大于1000000字节的文件 
     find / -name "con.file" -depth -print 查找根目录下有无"con.file",若无则在其子目录中查找 
    

(4)xargs命令 
     在 使用find命令的-exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递给exec。不幸的是,有些系统对能够传递给exec的命 令长度有限制,这样find命令运行几分钟之后就算出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs的用处所在,特别是与 find命令一起使用,exec会发起多个进程,而xargs会多个,只有一个 
    


(5)grep介绍.如果你想在当前目录下 查找"hello,world!"字符串,可以这样:  

grep -rn "hello,world!" *

* : 表示当前目录所有文件,也可以是某个文件名

-r 是递归查找

-n 是显示行号

-R 查找所有文件包含子目录

-i 忽略大小写

下面是一些有意思的命令行参数:

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写, 

grep -l pattern files :只列出匹配的文件名, 

grep -L pattern files :列出不匹配的文件名, 

grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’), 

grep -C number pattern files :匹配的上下文分别显示[number]行, 

grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行, 

grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。 

这里还有些用于搜索的特殊符号:

\< 和 \> 分别标注单词的开始与结尾。

例如: 

grep man * 会匹配 ‘Batman’、‘manic’、‘man’等, 

grep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’, 

grep '\<man\>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。 

'^':指匹配的字符串在行首, 

'$':指匹配的字符串在行尾,

(6),xargs配合grep查找

hello,world!'