Linux系统中一切皆文件,系统当中有成千上万的文件,每一个文件我们不可能都记下他的路径,有时候我们可能要使用到一个文件,却只知道他的名字,而不知道他在哪里,我们就需要使用一个工具找到他,这时我们就可是使用find命令。

      下面将我在马哥教育的学习当中学到的find常用方法介绍出来

 

      find  精确查找,实时查找,而且可以指定查找路径,但缺点是速度慢

 

      find [查找路径(可以有多个)] [查找条件][如何处理]

                                   

        1)查找条件 

             -name filename” 通过文件名字来查找

             -iname filename”通过文件名字来查找,不区分大小写

             -regex             支持正则表达式查找

             -iregex            支持正则表达式查找,不区分大小写 

             -user              根据属主查找

             -group             根据属组查找

             -uid               根据用户ID查找

             -gid               根据组ID查找

  

             -type     根据文件类型

             -type   f    普通文件

                     d    目录

                     l    链接

                     b    特殊文件,块设备

                     c    字符设备文件

                     P    管道文件

                     S    套接口文件

 

            -size    根据大小查找,默认为字节

                   2m  查找出1m-2m,相差一个单位内的文件

                  +2m  大于2m的文件

                  -2m 小于2m的文件 不包含1m2m的文件

    

           根据时间查找 支持减

            -atime        根据访问时间,单位天

            -mtime        根据修改时间,单位天

            -ctime        根据文件属性更改时间,单位天

            -amin         根据访问时间,单位分钟

            -mmin         根据修改时间,单位分钟

            -cmin         根据文件属性更改的时间,单位分钟

 

            -perm  根据权限查找

            -perm  mode     精确匹配

                  /mode     有任何一个数字所代表的权限即可

                  -mode     全部比配数字所代表的权限的那一位

    

      2)如何处理

            -exec   处理命令 {} \;不提醒用户确认

            -ok     处理命令  {} \; 提醒用户确认

         最好的方法是通过管道来实现

             find | xargs command find找到的结果执行命令  

    

    find支持多命令的查询

            -a   并

            -o   或

             !  非

 

 举例:

     1.#find  /etc -name rpc

       查找etc下名字为rpc的文件

     2.#find /etc -iname rpc

       查找etc下不论大小写名字为rpc的文件

     3.#find /etc -regex r.*

       查找etc下r开头的文件

     4.#find /etc -iregex r.*

       查找etc下不论大小R开头的文件

     5.#find /etc -user redhat

       查找etc下属主为redhat的文件

     6.#find /etc -group redhat

       查找etc下属组为redhat的文件

     7.#find /etc -uid 503

       查找etc下属主id为503的文件

     8.#find /etc -gid 503

       查找etc下属组id为503的文件

     9.#find /etc -type f

       查找etc下的普通文件

    10.#find /etc -size 2k

       查找etc下1k-2k之间的文件

    11.#find /etc -size -2k

       查找etc下小于1k的文件

    12.#find /etc -size +2k

       查找etc下大与2k的文件

    13.#find /etc -atime 2

       查找2天内访问过的文件

    14.#find /etc -atime -2

       查找两天前被访问过的文件

    15.#find /etc -perm 666

       查找etc下权限为666的文件

    16.#find /etc -perm /666

       查找etc下任何一位权限符合666的文件

    17.#find /etc -user redhat -a -group redhat

       查找etc下属主属组都为redhat的文件

    18.# find /etc -user root | grep  "^r.*"

       查找etc下属主为root的文件,并将r开头的所有文件显示出来

    19.#find /etc -name rpc -exac rm {} \;

       查找etc下名为rpc的文件并删除