find 命令
     find 是一个很强大的文件查找工具,可以按照文件的文件名、文件的属主、属组、文件的大小、文件的类型、文件权限、文件的时间戳来查找文件,还可以查找无效的属组、属主的文件,此外find还支持组合条件查找文件;默认情况下递归搜索目录下的文件,实时查找,查找速度相对locate较慢
find 的命令格式 
 # find [PATHNAME...] [criterion...] [actions...]
   PS:在不指定PATHNAME时默认在当前目录搜索
       在不指定criteria时默认匹配所有criteria
       默认的action是-print
       pathname:find 命令所查找的目录路径。
   action:
       -print: find 将匹配的文件输出到标准输出
       -exec :find 将匹配的文件执行exec给出的shell命令。命令格式:COMMAND {} \;
       -ok 与-exec的作用相同,只是在执行-ok 给出的shell命令更安全,在执行每条COMMAND之前,让用户缺人手否执行该命令。
       -ls 以长格式显示文件的属性信息
选项
       -name: 按照文件名查找文件,严格区分大小写,支持globbing方式的文件通配
       -iname:按照文件名查找文件,忽略大小写
-user UID 按照文件属主来查找文件
-group GID 按照文件所属的组来查找文件
-nouser 查找无有效属主的文件
-nogroup 查找无有效所属组的文件
-size SIZE [K|M|G]
           10M 查找大小为10M的文件
     +10M 查找大小大于10M的文件 
           -10M 查找大小大于10M的文件,默认小于一个单位内的文件都包含
-type
f :file     普通文件
d:directory 目录
b:block     块设备文件
c:character 字符设备文件
p:pipe      管道文件
l:link      链接文件
s :socket   套接字文件
-atime n
-mtime n
-ctime n
-amin n
-mmin n
-cmin n
PS:以上是按照文件的更改时间查找文件,其中time为天数,min为分钟;-n表示n分钟/天以内改变的,+n表示文件更改时间距现在n天以前
-perm 按照文件的权限查找文件
   755    3组的权限都必须是755
   +755, /755 其中任何一类用户某一个权限位符合条件
   -755    所有类别用户的用户所有权限位符合条件, 0表示对这类用户不做检查

组合条件:

-o 或(最低)

-a 与(次之)

-not 非(优先级最高)  

find 例子:
#find ./  查找当前目录下的所有文件
#find /etc -type l -ls 查找/etc下链接文件并以长格式显示文件的属性信息
#find /etc -name "passwd*" 查找/etc下一passwd开头的文件
#find /usr -user root 查找/usr下属主为root的文件
#find /var -group mail 查找/var下属组为mail的文件
#find / -nouser 查找系统中无效属主的文件
#find / -nogroup 查找系统中无效属组的文件
#find /tmp -not -user gentoo "*ur*" 查找/tmp 不属于gentoo用户包含ur的文件
# find /var -user -group mail
查找/var目录下属主为root并且属组为mail的所有文件
 
# find /usr -not -user root -a -not -user bin -a -not -user student
#find /usr -not \( -user root -o -user bin -o -user student \)
查找/usr/目录下不属于root,bin,或student的文件
 
# find /etc -mtime 7 -a -not -user root -a -not -user apache
# find /etc -mtime 7 -a -not \( -user root -o -user apache\)
查找/etc目录下最近一周内内容修改过且不属于root及apache用户的文件
 
# find / \( -nouser -o -nogroup \) && -ctime -1 -exec chown root:root {} \; 
查找当前系统上没有属主或属组且最近1天内曾被访问过的文件,并将其属主属组均修改为root
 
# find /etc -size +1M -exec basename {} >> /tmp/etc.largefiles \; 
查找/etc目录下大于1M的文件,并将其文件名写入/tmp/etc.largefiles文件中
 
# find /etc/ -not -perm /222 -ls 
查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息