Linux文件查找

Linux文件查找详解

10年积累的成都网站设计、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有昌邑免费网站建设让你可以放心的选择与我们合作。

  我们之前学过的grep、egrep以及fgrep命令是Linux的文本查找命令,只是单纯地匹配字符串的命令,而不是文件查找命令。

·文件查找的常用命令

    1,locate:

       locate是在全系统查找文件的命令,但是locate的查找是非实时的、非精确的,进行模糊匹配的一种查找方式,因为此种文件查找的方式是根据全系统文件数据库进行的,而该数据库只有在每天晚上才会更新,因此是非实时查找,但是这个文件数据库我们可以手动生成,为了使我们可以实时的查找文件,我们可以手动更新该数据库。

       生成文件数据库的命令:updatedb

       优点:locate命令执行速度快

        Linux文件查找

    2,find:

        find命令支持实时查找,精确查找,而且支持多种查找标准,但是find命令的执行速度慢,这是因为find命令是遍历指定目录下的所有文件进行查找,所以执行速度慢。

        用法格式:

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

        查找路径可以省略,省略以后就表示默认查找当前目录

        查找标准默认为查找指定路径下的所有文件

        查找处理动作(action),默认为输出至标准输出

        Linux文件查找

        (1)查找(匹配)标准(选项):

        ->-name(严格区分大小写查找) 'filename':对文件名做精确匹配

            Linux文件查找

            支持文件名通配

            *->用来实现匹配任意长度的任意字符

            Linux文件查找

            ?->用来实现匹配单个字符

            Linux文件查找

            []->用来实现匹配指定范围内的任意单个字符

            Linux文件查找

        ->-iname:文件名匹配不区分大小写

            Linux文件查找

        ->-regex:基于正则表达式进行文件名查找

            格式:-regex pattern

            

        ->-user:根据文件的属主来进行文件的查找

            格式:-user username

            Linux文件查找

        ->-group:根据文件的属组来进行文件的查找

            格式:-group groupname

            Linux文件查找

        ->-uid:根据uid查找,一旦某个用户被删除之后,此前所有属于这个用户的文件的属主将变为这个用户的id号

            Linux文件查找

            格式:-uid uid

            Linux文件查找

        ->-gid:根据gid查找,一旦某个用户的属组被删除之后,此前所有属于这个用户基本组的文件的属组将变成这个用户的基本组id号

            Linux文件查找

            格式:-gid gid

            Linux文件查找

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

            Linux文件查找

        ->-type:根据文件类型来查找文件

            f:普通文件

              Linux文件查找

            d:目录

              Linux文件查找

            c:字符设备

              Linux文件查找

            b:块设备

            Linux文件查找

            l:链接文件

            Linux文件查找

            p:管道设备

            Linux文件查找

            s:套接字设备

            Linux文件查找

        ->-size:根据文件大小来查找文件

            [+|-]#:+表示大于,-表示小于,#表示数值大小(不加+|-表示等于),只写#表示精确查找。

                k表示KB

                M表示MB

                G表示GB

            Linux文件查找

            大小匹配的法则:精确查找时会有误差,但是误差一般小于1,且小于所要匹配的数值。

·组合条件查找,默认为逻辑与关系

   ->-a:逻辑与关系

        Linux文件查找

   ->-o:逻辑或关系

        Linux文件查找

   ->-not:逻辑非关系

     Linux文件查找

        练习:

        1,查找/tmp目录下,不是目录且不是套接字类型的文件

            Linux文件查找

        2,查找/tmp/test目录下,属主不是user1,也不是user2的文件 

          Linux文件查找

        

·根据时间戳查找文件

    时间为天数:

    格式:

      ->-mtime [+|-]#:修改时间

        Linux文件查找

      ->-ctime [+|-]#:改变时间

        Linux文件查找

      ->-atime [+|-]#:访问时间

        Linux文件查找

      ->#表示距离现在的第#天有动作,+#表示距离现在的第#天之前有动作,-#表示距离现在的第#天之后有动作

        Linux文件查找

     时间为分钟

     格式:

      ->-mmin [+|-]#:修改时间

        Linux文件查找

      ->-cmin [+|-]#:改变时间

        Linux文件查找

      ->-amin [+|-]#:访问时间

        Linux文件查找

      ->#表示距离现在的第#分钟有动作,+#表示距离现在的第#分钟之前有动作,-#表示距离现在的第#分钟之后有动作

        Linux文件查找

·根据权限来查找

    格式:

      ->-perm MODE:表示精确匹配

        Linux文件查找

      ->-perm +MODE:三位权限任意一位匹配即满足条件

        Linux文件查找

      ->-perm -MODE:文件权限能完全包含此MODE才符合条件

        Linux文件查找

       (2)查找以后的处理动作(action):

            默认为-print(显示出来)

            Linux文件查找

          ->-ls:类似于命令ls -l的形式显示每一个文件的详细信息

            Linux文件查找

          ->-ok:-ok表示处理动作的每一步都需要用户确认

                固定格式:-ok COMMAND {} \;

                Linux文件查找

           花括号表示的是前面find命令查找到的文件名

          ->-exec:-exec的处理动作不需要用户确认,一气呵成

                固定格式:-exec COMMAND {} \;

            Linux文件查找

         

    练习:

    1,查找/var目录下属主为root并且属组为mail的所有文件

        Linux文件查找

    2,查找/usr目录下不属于root、bin或student的文件

       Linux文件查找Linux文件查找

    3,查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件

        Linux文件查找

    4,查找当前系统上没有属主或属组且最近一天内曾被访问过的文件,并将其属主属组均修改为root

      Linux文件查找

    5,查找/etc目录下大于1M的文件,并将其文件名写入/tmp/etc/largefiles

        Linux文件查找

    xargs方法:

      Linux文件查找

    6,查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息

          Linux文件查找


本文题目:Linux文件查找
文章源于:http://ybzwz.com/article/jgghcp.html