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

大哥大姐们,请问下,Centos 查找目录下所有文件中是否包含指定字符串centos
最新回答
﹏澈

2024-05-15 06:09:27

find命令用于查找文件,格式为:“find [查找路径] 寻找条件 操作”。

“Linux系统中的一切都是文件”,接下来您就要感受到这份力量了。咱们在Linux系统中的搜索工作一般都是通过find命令来完成的,它可以根据不同的文件特性来做为匹配项(如文件名、大小、修改时间、权限等信息),一旦匹配到了则会默认为用户显示到屏幕上来,基础的匹配项目请见下表即可,我主要讲解下“--exec”参数重要的作用,这个参数是用于将find命令搜索到的结果交由给后面的命令再进一步做处理,十分类似于咱们将在下一章中提到的管道符技术。

参数    作用    

-name    匹配名称    

-perm    匹配权限(mode为完全匹配,-mode为包含即可)    

-user    匹配所有者    

-group    匹配所有组    

-mtime -n +n    匹配修改内容的时间(-n指n天以内,+n指n天以前)    

-atime -n +n    匹配访问文件的时间-n指n天以内,+n指n天以前    

-ctime -n +n    匹配修改权限的时间-n指n天以内,+n指n天以前    

-nouser    匹配无所有者的文件    

-nogroup    匹配无所有组的文件    

-newer f1 !f2    匹配比文件f1新却比f2旧的文件    

--type b/d/c/p/l/f    匹配文件类型(块设备、目录、字符设备、管道、链接文件、文件文件)    

-size    匹配文件的大小(+50k查找超过50k的文件,而-50k则代表查找小于50k的文件)    

-prune    忽略某个目录    

-exec {} \;    后面可接对搜索到结果进一步处理的命令(下面会有演示)    

了解更多Linux命令

http://www.linuxprobe.com/chapter-02.html

Linux系统中的配置文件根据FHS协议会被保存到/etc目录中(第六章精讲),如果咱们要想获取到该目录中所有以host开头的文件就可以这样做:

[root@linuxprobe ~]# find /etc -name "host*" -print
/etc/avahi/hosts
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/selinux/targeted/modules/active/modules/hostname.pp
/etc/hostname

想要在整个系统中搜索所有权限中包括SUID权限的文件(第五章精讲),只需使用减号-4000即可:

[root@linuxprobe ~]# find / -perm -4000 -print
/usr/bin/fusermount
/usr/bin/su
/usr/bin/umount
/usr/bin/passwd
/usr/sbin/userhelper
/usr/sbin/usernetctl
………………省略部分输出信息………………