温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux文件查找

发布时间:2020-07-21 02:45:16 来源:网络 阅读:573 作者:迷途不知返 栏目:数据库

Linux文件查找详解

  我们之前学过的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文件查找



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI