Centos查找目录下所有文件中是否包含指定字符串的方法

2020-01-30 15:29:18于丽

-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",若无则在其子目录中查找

find . -type f -exec ls -l {} ; 查找当前目录下是否有普通文件,若有则执行ls -l

(4)xargs命令

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

find ./ -perm -7 -print | xargs chmod o-w 查找权限为7的文件并传递给chmod处理

3.grep介绍

(1)grep 的一般格式为 grep [options] 基本正则表达式 [文件]

字符串参数最好采用是双引号括,一是以防被误解为shell命令,二是可以用来查找多个单词组成的字符串

-c:只输出匹配行的记数

-i:不区分大小写(只适用于单个字符)

-h:查询多个文件时不显示文件名