首页 > 其他 > 详细

Find >强大的文本查找

时间:2014-02-27 21:44:17      阅读:452      评论:0      收藏:0      [点我收藏+]

前面我们已经到过正则表达式的grep工具,接下来让我们了解另一个个文本查找搜索工具find


一 find特性

  与grep的模糊查找不同

  1 find 是实时查找

  2 find 查找的速度慢

  3 find 可以做到精确匹配,自然比较耗费资源,不要大范围的find


二  命令格式


find [options] [查找路径][查找条件][处理]



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

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

           处理动作:默认为显示到显示器 -print


   详细阐述

     1 查找条件


       1.1  -name "文件名称"

bubuko.com,布布扣

             ###查找 /etc目录下 所有以shadow开头的文件 支持字符串通配符



       1.2   -iname "文件名称":忽略大小写查找

             例如  #find /etc/ -name "A*"

bubuko.com,布布扣

              ###查找/etc目录下 所有以小写字母a开头的文件,忽略大小写

        1.3  -user UserName:根据属主查找

            linux用户创建updatedb.conf文件bubuko.com,布布扣

            ###查找以属主为linux的文件

bubuko.com,布布扣


         1.3.1 -uid 用户ID号:根据用户ID查找

bubuko.com,布布扣



        1.4 -group GroupName:根据属组查找

bubuko.com,布布扣

              ###查找属组为root的所有文件


           1.4.1 -gid 基本组号:根据属组ID查找

bubuko.com,布布扣

               ###查找gid为0的用户的/bin目录下的所有文件  gid为0的用户为root用户


           1.5 -nouser:根据没有属主的条件查找

               -nogroup:根据没有属组的条件查找


             删除用户后,再次查看/tmp目录下该用户创建的文件属性

              #ll /tmp


bubuko.com,布布扣

               你会发现该文件的属主属组为502 而非linux用户

               此时我们通过 -nouser ;-nogroup来查找

bubuko.com,布布扣

              -nouser -nogroup 的用途:当一个用户被删除后,有其残留的文件,此时可以这样                                         查找并删除


            1.6 一些强大的组合条件



-a :“与” 同时满足

bubuko.com,布布扣

            ##查找不属于用户root 也不属于linux用户的文件

           等同于find /tmp -not \( -user linux -a -user root \)




-o : 或,有一个满足


bubuko.com,布布扣

             ###以上命令表示 :在/tmp目录中查找出 属主不是linux的文件 或者查找出名字不是      以.txt结尾的文件。

            (也可以理解为查找出除 属主为linux或者名字是以.txt结尾的文件 以外的文件)

        =find /tmp -not \( -user linux -o -name "*.txt")\

bubuko.com,布布扣

      您看是不是一样 哈哈,仔细琢磨下,我刚琢磨过来


-not,!:非,取反 相反则满足


  2  -type 根据文件类型查找



              f 普通文件    #find /tmp -type f  查找tmp目录下的普通文件

              b 块设备文件

              s 套子节

              d 目录文件

              p 管道符

              l 链接符

   3 -size 根据文件大小查找


         -size [+-] #Unit


        #Unit 是单位:k,M,g  --kb,MB,GB

        所以查找的是属于一个单位该单位的范围内的--是不是比较绕?继续看


       --- 如果没有[+-]则默认的代表=


          例如 2M 表示大于1M小于等于2M 的意思


bubuko.com,布布扣

           查找出3kb< #《4kb的文件


    4 根据时间戳查找(比较麻烦自习看哦)


           -a  --access time 访问时间

           -m  --modify time 修改时间

           -c  --change time 改变时间


       4.1 以天为单位 time



          格式:以访问时间为例

                  -atime [+|-]#  

                 + 表示(#+1)天之外被访问过

                 - 表示#天之内被访问过

                 无符号 表示在 (#+1) > x >=#天的时间段被访问过;


          上图

bubuko.com,布布扣

           查看/var/log 一天外被修改过的文件 注意 -mtime +1 的意思,不明白继续返回去看


          4.1.1  以分钟为单位 min

                   -amin

                   -mmin

                   -cmin

            用法同以天为单位time


       5 根据权限查找


          格式:-perm [+|-] MODE  


         MODE : 没有+-的时候 表示= 精确匹配


         +MODE: 任何一类用户的任何一位权限匹配;常用于查找某类用户的某特定权限是否存在;

         -MODE:  每类用户的指定要检查的权限为都匹配


        例如:find /etc/ -not -perm +222

            先来看 -perm +222

            表示:任何一类用户的任何一位权限匹配就匹配 -->属主、属组、others 其中任何一                    个匹配2(写的权限)就匹配查找

                 -not -perm +222

            表示:每类用户的指定要检查的权限都匹配才匹配-->属主、属组、others 都匹配                        2(写的权限)才匹配查找


           那么find /etc/ -not -perm -222呢?


                表示 用户、用户组、others的任何一个没有写权限的 就匹配查找


        6 处理动作


            -print:打印在标准输出上

             -ls    以长格式输出各文件信息

            -exec  COMMAND \;  对查找到的文件执行指定的命令

             -ok    COMMAND \; 交互式的-exec

             | xargs COMMAND

           注意:find把查找到的所有文件一次性的传递给-exec所指定的命令

        # find /tmp -perm -003 -type f -exec ls -ld {} \;  


        查找出/tmp目录下 所有符合其他用户有读且执行权限 的普通文件,并调用 ls -ld 命令            执行出来



           简直是太绕了~~~


PS:望大神多提意见,错误的地方请指出。我很菜但是我很努力.


本文出自 “西风瘦猪” 博客,请务必保留此出处http://jungege.blog.51cto.com/4102814/1363913

Find >强大的文本查找,布布扣,bubuko.com

Find >强大的文本查找

原文:http://jungege.blog.51cto.com/4102814/1363913

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!