Linux文件查找的使用方法

文件查找的方法

locate命令

      非实时查找(数据库查找): locate查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db
    依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行(周期性任务);管理员手动更新数据库(updatedb);
    索引构建过程需要遍历整个根文件系统,极消耗资源;
    工作特点:
               查找速度快;
            模糊查找
            非实时查找
            搜索的是文件的全路径,不仅仅是文件名
            可能只搜索用户具备读取和执行权限的目录

v   常用选项

            -i  忽略大小写

            -n  只搜索符合条件的前几个

                例如:locate “test” -n 3

                     只搜符合“test”条件的前三个                                                                                                                                                                                                                                                                                          

             -r  使用正则表达式来搜

                例如:locate -r “^.*\.sh”

                     搜索以.sh结尾的文件

            -b  匹配基名

         -c  显示总共搜到了符合条件的数量

            

find命令实时查找工具,通过遍历指定路径完成文件查找;

     工作特点:
              查找速度略慢
           精确查找
           实时查找
           可能只搜索用户具备读取和执行权限的目录
find
       语法:find [OPTION]… [查找路径] [查找条件] [处理动作]
       查找路径:指定具体目标路径;默认为当前目录
       查找条件:指定的查找标准,可以文件名、大小、类型、
       权限等标准进行;默认为找出指定路径下的所有文件
       处理动作:对符合条件的文件做操作,默认输出至屏幕
查找条件

  根据文件名称和inode编号查找

     -name   根据文件名称查找,支持通配符。

   blob.png

     -iname    不区分搜索条件大小写

blob.png 

      -inum  n  根据文件inode号查找

blob.png 

      -samefile  name   搜索相同的inode号文件

blob.png 

      -links  n    搜索链接数为n的文件

blob.png 

      -regex  “PATTERN” 按正则表达式搜索

blob.png 

根据属主、属组查找

     -user   查找属主

blob.png 

      -group   查找属组

blob.png 

      -uid       查找符合条件的UID号文件

blob.png 

      

-gid       查找符合条件的GID文件

blob.png 

-nouser   查找没有属主的文件

-nogroup  查找没有属组的文件

 

根据文件类型查找

-type

    f    普通文件

    d    目录

    l    符号链接

    s    套接字文件

    b    块设备

    c    字符设备

    P    管道文件

组合条件

    -a   与

    -o   或

    -not ! 非

德·摩根定律

         非(p且q)=(非p)或(非q)

         非(p或q)=(非p)且(非q)

 

根据文件大小查找

 -size  #     常用单位  K   M   G

       #    #-1<file≤#

  例如:find  -size  10k  file

      表示查找大小在9<file≤10的文件

       -#   0≤file≤#-1

  例如:find  -size  -10K  file

      表示查找大小在0≤file≤9的文件

       +#    #<∞

  例如:find  -size  +10k  file

      表示查找大于10k的文件

根据时间戳  

      以天为单位

         -atime  # 

                 #    #≤file<#+1

                +#    #+1≤file≤∞

                -#     0≤file<#

         -mtime

         -ctime

       

       以分钟为单位

           -amin

           -cmin

           -mmin

根据权限查找

           -perm  MODE

               MONE    精确匹配权限

blob.png 

               /MONE   任何一类(u,g,o)对象的权限中只要能一位匹配即可,是或

                        的关系,“+”从centos7开始淘汰。

blob.png 

               -MONE   每一类对象都必须同时拥有指定的权限,是与的关系。

blob.png 

                 0      表示不关注。

blob.png 

上图中,保留u g上原有的权限,只删选符合o上有执行权限的文件。

 

处理动作

       -print       默认的处理动作  显示至屏幕

       -ls         相当于 ls -l

       -delete     删除查找到的文件

       -fls  file    查找到的文件的长格式信息保存至指定的文件。

                  例如:find  -name “f*” -fls  /root/find.txt

                       将查找到的以“f”开头的文件存入/root/find.txt文件中。

                       用重定向也可以将搜索到的文件存入指定文件中

       -ok  COMMAND {} \ ; 对查找到的每个文件执行由COMMAND指定的命令。

                  例如:find  -name “f*” -ok  cp{}  {}.bak  \;

                       对查到的每个以“f”开头的文件执行复制命令,并且以.bak为后

                       缀。

blob.png 

                    -exec  COMMAND  {}  \  ;  

     例如: find -name “ip.sh” -exec cp {}  /testdir/f1 \;  下图划红线的地方未出先提示信息,

而用-ok会出现提示信息“是否复制文件”的提示信息。

blob.png 

    有些命令不能接受过多的参数,此时命令执行可能会失败,用xargs命令可以规避此问题。

                   find  |  xargs  COMMAND

    

 

原创文章,作者:zzd,如若转载,请注明出处:http://www.178linux.com/34727

(0)
zzdzzd
上一篇 2016-08-15
下一篇 2016-08-15

相关推荐

  • Linux中的网络功能概念介绍(一)

      在操作系统中,进程之间的通信是用ipc(内存基本通信)以及内存共享shm来实现本地的通信,那么如果跨主机间通信或者说是不同之间的主机用rpc(远程过程调用)以及socket套接字,用一个主机在socket中写数据,另一个主机在socket之间读数据,以实现进程通信的最终目的。   在网络功能出现之前,基本都是用电话…

    Linux干货 2016-11-23
  • LNAMP Shell 部署脚本

    LNAMP Shell 部署脚本 学习总结: 这个脚本,早期是出于对个人学习Shell的总结而写,应该有些年头了,目前也在一边学马哥视频的基础上陆续完善,10月初才完成LNAMP环境的分离式部署,并减少整个Shell脚本各部分的依赖关系。 我是网络班13期高级班的学员,因个人做了几年Linux运维,所以目前整个高级班的课程,我是跳着看了集群(LVS + Ke…

    Linux干货 2015-10-27
  • Linux第七周小结

    1、创建一个10G分区,并格式为ext4文件系统 a) 要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl; b) 挂载至/data/madata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; 2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之 3、写一个脚本 a)&…

    2017-08-13
  • linux下的打包与压缩

    linux压缩或解压缩工具有很多,除了已经很少有人使用的compress外,现在常用的还有tar,bzip2,xz 和gzip等,我们来说说它们的用法。 先来说bzip2。bunzip2和bzcat可以由bzip2指定选项来执行同样的结果,这里只介绍bzip2的用法。使用bzip2这个工具创建的文件以.bz2,.bz,.tbz,.tar.bz2或者…

    Linux干货 2017-04-16
  • B-树和B+树的应用:数据搜索和数据库索引

    B-树 1 .B-树定义 B-树是一种平衡的多路查找树,它在文件系统中很有用。 定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每个结点至多有m 棵子树;⑵若根结点不是叶子结点,则至少有两棵子树; ⑶除根结点之外的所有非终端结点至少有[m/2] 棵子树;⑷所有的非终端结点中包含以下信息数据:    &nb…

    Linux干货 2015-07-30
  • 文本处理工具基础应用

                                                      &nbsp…

    Linux干货 2016-08-07

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-19 10:46

    对find命令的常见选项总结的很详细,同时,find的处理动作也是很重要的哦,这也是需要我们多加练习的。