find -name 指定名称

        -iname 不指定大小写

        -maxdepth 搜索深度

        -not -iname  不区分大小写的名字,除name以外的都显示 


find / -maxdepth 2 -maxdepth 5 -not -name passwd   

查找根目录下1级目录到4级目录,除passwd,不区分大小写的文件

locate:

    在全系统查找文件内容,非实时,查找是根据全系统文件数据库进行的,模糊匹配

    updatedb:手动生成文件数据库

    速度快

find:

    实时查找

    精确

    遍历指定目录中的所有文件完成查找,所以速度慢。

find 查找路径 查找标准 查找到以后的处理动作

默认为当前目录

默认为指定路径下的所有文件

默认打印到屏幕上

匹配标准:

    -name 'filename' :对文件名做精确匹配

          文件名通配:

            *:任意长度的任意字符

            ?

            []

    -iname 'filename'  文件名匹配不区分大小写

    -regex PATTERN: 基于正则表达式进行文件名匹配

    -user USERNAME:文件的属主查找

    -group GROUPNAME: 文件属组查找

    -uid    UID

    -gid    GID

    -nouser  没有属主的文件

    -nogroup 没有属组的文件

    -type 文件类型

        f:普通文件

        d:目录

        c:字符设备

        b:块设备

        l:连接文件

        p:管道文件

        s:套接字文件

    -size 

        [+|-]#k

        #M

        #G

组合条件:

    -a与

    -o或

    -not非

find ./ -not -user user1 -a -not -user user2
find ./ -not \(-user user1 -o -user user2\)

查找当前目录下,属主既不是user1和User2的文件

    -mtime

    -ctime

    -atime

        [+|-]#(天)

    -mmin

    -cmin

    -amin

        [+|-]#

    -perm MODE 精确匹配

        -perm -mode 完全包含Mode时才能显示

        -perm /mode 有一个匹配就行

                perm /022  组有写权限或者其他用户有写权限

                perm -022  其他组和其他用户都有写权限

find动作:

    -print:显示

    -ls:类似ls -l的形式显示每一个文件的详细

    -ok COMMAND { } \;每一次操作都需要用户确认

    -exec COMMAND { } \;不需要确认

find ./ -perm -006 -exec chmod o-w {} \;
find ./ -perm -020 -exec mv {} {}.new \; 对查找包含组有写权限的重命名原来名字+.new
find ./ -name "*.sh" -a -perm -111 -exec chmod o-x {} \; 查找*.sh的文件并且都有执行权限的文件,再将其他用户的执行权限去除。