目的

熟练使用find命令在多条件限定下查找符合条件的文件。

find命令功能:在一个层级目录里搜寻文件,支持查询条件为文件名、文件大小、文件权限、文件属组/属主、文件时间戳、文件类型等。

前提

可用的centos7系统,连接网络。

命令介绍

【例1】查找/var目录下属主为root,且属组为mail的所有文件

[root@Magedu ~]# find /var/ -user root -group mail

​ /var/spool/mail

​ /var/spool/mail/root

【例2】查找/var目录下不属于root、lp、gdm的所有文件

[root@Magedu ~]# find /var -not \( -user root -o -user lp -o -user gdm \)

【例3】找出/home/var/log目录下删除所有以.log结尾的文件并无需人工确认删除

[root@Magedu ~]# find /home/var/log -name "*.log" -exec rm {} \;

【例4】找出/etc目录下所有以.conf结尾的文件

[root@Magedu ~]# find /etc -name "*.conf"

【例5】将30天前的.log文件,大于10G的文件移动到old目录中

[root@Magedu ~]# find ./ -type f -size +10G -mtime +30 -name "*.log" -exec mv {} old \;

【例6】查找/tmp目录下,u,g,o任何一类用户(至少有一类)中有读或写权限的文件;

[root@Magedu ~]# find /tmp/ -perm /666 -ls

【例7】查找/tmp目录下,权限为104的文件

[root@Magedu ~]# find /tmp/ -perm 104 -ls

【例8】查找/tmp目录下,任何一类用户的任何一位权限有执行或或读权限的文件;

[root@Magedu ~]# find /tmp/ -perm /104 -ls

【例9】查找/tmp目录下,属主有执行权限同时其它有读权限的文件

[root@Magedu ~]# find /tmp/ -perm -104 -ls

文章来源于网络,侵删!