在系统上按给定的雕件查找符合的的文件 有两种实现工具: locatefind

这篇博文主要介绍find的用法

find是通过遍历指定起始路径下的文件系统层级结构来完成条件查找

其工作特性是:

    ⒈查找速度略慢 -在find命令中可能会经常使用到正则表达式来查找

    ⒉精确查找

    ⒊实时查找

用法:    find [OPTIONS] [查找起始路径] [查找条件] [相应处理动作]

find有多种查找条件:

根据文件名查找

    -name "pattern"

    -lname "pattern" : 不区分文件名中的大小写并支持glob风格的通配符

    -regex pattern  : 基于正则表达式文件查找.匹配整个路径.而不是基名

    查找文件 find_用户名查找/tmp目录下te开头的所有文件

根据文件的从属关系查找

    -user USERNAME 查找属主为指定用户的文件

    -uid 根据UID进行查找 在删除用户之后之前该用户创建过的文件就只有UID 没有用户名

        这种情况下可以用uid查找

    查找文件 find_风格_02

    -group GROUPNAME: 查找属组为指定组的文件

    -gid 根据gid进行查找

    -nosuer : 查找没有属主的文件

    -nogroup : 查找没有属组的文件    查找被删除用户遗留下来的文件可以用

根据文件类型查找

    -typeTYPE

组合测试 条件 -a/-o 条件

    -a: 与 默认情况下就已经是组合"与"逻辑

    -o: 或

    -not,! :非    查找文件名不是te*的文件

    查找文件 find_通配符_03

根据文件的大小查找

    -size [+|-]#UNIT     常用单位:K,M,G    

    我们要查找一个1G的文件时并不是指文件大小正好等于1G 当查找1G文件的时候这里是有一定的      误差存在的 1G=1024M 1M=1024K 所以换算的时候肯定是有误差的

    #UNIT: (#-1,#]size-1<size<=size    

    如我们要查找500M文件的时候实际上搜出来的文件大小是 499<x<=500 范围内的文件

    -#UNIT:[0,#-1]<=size-1的

    +#UNIT:(#,无限大)   >size的

6.根据时间戳查找    在时间戳查找中也是有一定的误差范围的.同大小一样

    以'天'为单位:    

        -atime [+|-]#:

            #:[#,#+1)三天前的文件 范围为 3<=时间<4

            -#: (#,0]

            +#: (无限大,#)

    以'分钟'为单位

        -amin

        -mmin

        -cmin

7.按权限查找

    -perm [/|-]mode   644权限形式

         mode  : 精确权限查找   664 就必须查找664

           /mode : 任何一类用户(ugo)中的任何一位(rwx)符合条件即满足

            9位权限之间存在"或"关系   600  查找用户6的文件

        -mode : 每一类用户的权限中的每一位同时符合条件

            9位权限之间存在'与关系'   范围是664时 777也符合条件

处理动作:       

    -print:输出至标准输出:默认的动作

    -ls : 类抑于 ls-l   

      注:ls本身也是一个条件

         -ls 展开的是其前面的条件

        如 find /tmp -ls -user root 与

          find /tmp -user root -ls  两个命令的结果是不一样的

        前者是先把 /tmp目录下所有文件的详细信息都展示时候查找 root用户的文件

        后者是先查找属主为root的文件 把属于root的文件详细展示出来

    -delete:删除查找到的文件

    -fls /PATH/TO/SOMEFILE 把文件的详细信息保存至制定文件中

    -ok COMMAND {}\;  :固定格式!!  对查找到的每个文件执行COMMAND表示的命令

    -exec COMMAND {} \;  : 每次操作用户不确认

     查找文件 find_通配符_04  

注:不知道是我自己系统配置的原因还是CentOS6.7版本的原因还是我自己本身敲错命令了

如果各位在运行 -exec或者-ok的时候碰见了以下问题

    查找文件 find_风格_05

    一直等待输入  然后我按网上的方法 在最后添加了""  '' ``  " {}\;"等符号

    查找文件 find_风格_06

    出现了遗漏参数的错误提示. 对此网上的解决方法基本上是在尾部不同位置加入引用副

    但是我还是运行错误 所以试着在"{}" \ 结果在我的机器是能运行成功命令了

    查找文件 find_风格_07

    可以试试看.