find命令使用方法

find:通过遍历指定的目标目录,实时查找符合指定属性的文件

创新互联公司服务项目包括铁西网站建设、铁西网站制作、铁西网页制作以及铁西网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,铁西网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到铁西省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

  优点:精确匹配进行查找

  缺点:速度略慢

用法:

  find [OPTION] [查找路径] [查找条件] [处理动作] 

查找路径:默认为当前路径

查找条件:默认为指定路径下的所有文件

处理动作:默认是在屏幕显示出来

查找条件:

  -name:查找时区别文件大小写,支持glob

  *,?,[],[^]

  -iname:查找时不区分文件大小写  

  -user USERNAME:根据文件属主查找

  -group USERNAME:根据文件属组查找

  -uid UID:根据指定的UID查找

  当原有的用户被删除时,他之前所创建的文件的属主属组,变成他之前帐号的uig和gid

  -gid GID:根据指定的GID查找

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

  -nogroup:查找没有属组的文件

  -type TYPE:根据文件类型查找

  -size TYPE:根据文件大小查找

  -atime [+|-]#:最近几天访问过的文件

  -mtime[+|-]#: 最近几天修改过的文件

  -ctime[+|-]#: 最近几天改变的文件

  -amin[+|-]#:  最近几分钟内访问过的文件

  -mmin[+|-]#:  最近几分钟内修改过的文件

  -cmin[+|-]#:  最近几分钟内改变过的文件

  -perm [+|-]MODE:根据权限查找

  -maxdepth:    查找最在深度,例:-maxdepth 1表示只在当前目录下找,而不去找当前目录下的目录

  -mindepth:    查找最小深度

组合查找条件:

  -a:与    当不带此参数,同时有2个操作时也表示与

  -o:或者

  !, -not:非

根据文件类型查找

  -type TYPE:

    f:普通文件

    d:目录文件

    l:符号链接文件

    b:块设备

    c:字符设置文件

    p:命令名管道

    s:表示套接字文件

根据文件大小查找

  -size TYPE:

    常用单位:k,M,G

      +;大于

      -;小于

      什么都不带表示为精确的大小

      #UNIT:表示 #-1< x <=# 以2k为例;2-1< x <=2 查找的是0大于1k和小于等于2k的所有文件都符合

      -#UNIT:x <= #-1  以2k为例:x <= 2-1查找的是小于等于1k的所有文件

      +#UNIT:x > # 以2k为例:x > 2查找的是大于2k的所有文件

根据时间戳查找:

    以“天”为单位:

        -atime [+|-]#:最近几天访问过的文件

            # <= x < #+1

            比如想要查找3天前访问的文件 -atime 3

            输出的结果应该为大于等于3天,小于4天的内容 

            -#: x < #

            +#:x >= #+1

        -mtime[+|-]#:最近几天修改过的文件

        -ctime[+|-]#:最近几天改变的文件

    以“分钟”为单位:

        -amin[+|-]#:最近几分钟内访问过的文件

        -mmin[+|-]#:最近几分钟内修改过的文件

        -cmin[+|-]#:最近几分钟内改变过的文件

根据权限查找:

    -perm [+|-]MODE:

    MODE:精确匹配权限

        例:find ./ -perm 755   #查找指定权限为755的文件

    /MODE(在centos6,7上面用/号,表示+号):任何一类用户的权限只要包含对其指定的任何一位权限即可

    例:600权限   随便匹配一类就可以,要么属主是6,要么属组是0,要么其它是0,都匹配

    -MODE:每一类用户的权限都包含对其指定的所有权限,与权限

    例:找到后缀为txt的文件,并且具有执行的文件(u,g,o任意一个具有x的都可以)

        #find ./ -name "*.txt" -a -perm /a+x

找到后的处理操作:

    -print:默认动作,打印至屏幕

    -delete:删除查找到的文件

    -ls:显示找到的文件的详细属性

    -fls /path/to/somewhere:查找到的所有文件的长格式信息保存至指定文件中;

    -exec COMMAND {} \;执行其它的操作,没有交互,直接进行操作

    {}:表示找到的文件名

    {}:用于引用查找到的文件名称自身

    -ok COMMAND {} \;对查找到的每个文件执行由COMMAND指定的命令;在执行命令前会进行交互式提示

    例:find ./ -name "*.txt" -a -perm /u+x -ok rm -rf {} \;(在执行命令前进行提示)

    注意:find命令会一次性找到所有符合条件的文件,并一同传递给后面的命令,如果后面的命令不能接收较长的参数时,会报错;解决办法用xargs命令一条一条的传递给COMMAND,而不同时传递

用法实例:

  例1:同时查找2个文件

    find ./ -name "3.log" -o -name "4.log"

  例2:同时排除2个文件

    find ./ ! \( -name "3.log" -o -name "4.log" \)

    find ./ ! -name "3.log" -a ! -name "4.log"


本文标题:find命令使用方法
URL链接:http://csdahua.cn/article/gjhdoj.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流