find是一种查找文件的命令。它遍历系统中的每个文件实现精确、实时查找,并可以根据用户指定路径查找。它支持Glob的通配符。find的常用格式为:

       find [查找路径 ...] [查找条件] [处理动作]
      
      1、find命令常用查找条件:
            -name "FILENAME"    按指定名称查找
            -iname "FILENAME"   不区分文件的大小写 
            -user USERNAME       根据用户属主查找
            -group GROUPNAME  根据用户属组查找
            -uid UID    根据UID查找文件
            -gid GID   根据GID查找文件
            -nouser     查找没有属主的文件
            -nogroup   查找没有属组的文件
            -type   根据文件类型查找 
             f :普通文件
            d:目录文件
             l:软连接
             b:块设备
             c:字符设备
             p:管道
             s:socket文件
            -size [+/-]#   根据文件大小查找。默认按字节查找
                  单位: {k|M|G}
                         +: 表示大于指定大小的文件
                          -: 表示小于指定大小文件 
            -atime  [+/-]#     根据访问时间(单位为天)
            -mtime [+/-]#     根据修改时间(单位为天)
            -ctime  [+/-]#     根据改变时间(单位为天)
            -amin   [+/-]#     根据访问时间(单位为分钟)
            -mmin  [+/-]#     根据修改时间(单位为分钟)
            -cmin   [+/-]#     根据改变时间(单位为分钟)
                     +: 表示至少指定时间没有被访问或被修改过
                      - : 表示最近指定时间内被被访问或被修改过
             -perm   根据权限查找
                mode:精确匹配
                /mode:任何一位匹配都行
                -mode:所有都得匹配
       2、多条件查找,条件间逻辑关系:
                并:-a
                或:-o
                非:!, -not 
             若省略连接符则默认为是“并”关系
       3、处理动作:
            -print 默认动作。将查找结果输出
            -ls :将查找结果详细输出
            -ok COMMAND { } \;   执行命令并提醒用户确认
            -exec COMMAND { } \;  执行命令不提醒
                   {}是一个占位符,表示对查找的结果执行命令
                   \; 固定格式
        4、实例应用
           (1)查找/var目录下属主为root并且属组为mail的所有文件;
                 find /var  -user root -a -group mail
           (2)查找/etc目录下包含passwd字符的所有文件
                 find  /etc -name "*passwd*"        
           (3)查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件;
               find /etc -mtime -7 -a -not \( -user root  -o -user student \)
           (4) 查找当前系统上没有属主或属组且最近1天内曾被访问过的文件,并将其属主属组均修改为root;
              find  /  -nouser -o -nogroup -a -atime -1 -exec chown root:root {} \;
           (5)查找/etc目录下大于1M的文件,并将文件写入/tmp/etc.largefiles文件中;
               find /etc -size +1M -exec {} > /tmp/etc.largefiles
           (6)查找/etc目录下所有用户都没有写权限的文件,并显示其详细信息;        find /etc -perm -555  ls