目的

熟练使用 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

文章来源于网络,侵删!