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 09:25
下一篇 2016-08-15 09:25

相关推荐

  • 网络组(Network Teaming)

    网络组(Network Teaming) 网络组:是将多个网卡聚合在一起的方法,从而实现容错和提高吞吐量 网络组不同于旧版中bonding技术,提供更好的性能和扩展性 网络组由内核驱动和teamd守护进程实现. 多种方式runner     broadcast     roundrobin     …

    Linux干货 2017-03-26
  • yum初步入门

                             yum工具是为提高RPM软件安装性而开发的一种软件包管理器,是由pyt…

    Linux干货 2015-04-01
  • 快速运用NFS共享web页面

    环境:centos7.3最小化三台,前期准备关闭防火墙和selinux 目的:通过文件共享,使客户端访问web服务器时是同样的页面。 拓扑图: 优势:减少WEB服务器的压力。 一、安装软件 NFS、WEB1、WEB2: #yum install nfs-utils -y WEB1、WEB2: #yum install httpd -y 二、配置 NFS: #…

    2017-04-27
  • CentOS系统启动

    Linux组成 Linux: kernel+rootfs kernel:  进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能 rootfs: 程序和glibc 库:函数集合, function,  调用接口(头文件负责描述) 过程调用:procedure ,无返回值 函数调用:function 程序:二进制执行文件 内核设计流派…

    2017-05-15
  • 网络管理基础-子网划分及网络配置练习

    1、某公司申请到一个C 类IP 地址,但要连接6 个的子公司,最大的一个子  公司有26 台计算机,每个子公司在一个网段中,则子网掩码应设为?  192.168.100.1 网络位192.168.100 192.168.100.00000000 C类掩码255.255.255.0 192.168.100. 000 00001  …

    Linux干货 2016-09-05
  • Python第一周小结

    经历了两个星期Linux运维基础的铺垫,这周我们正式开始了python的学习。经过第一周的各种挣扎以及反复训练,终于有所收获了一点东西。现在将第一周中学到的一个非常重要的算法技巧总结如下: 即:折半思想 例:给定一个不超过五位数的正整数,判断该数有几位数 Code1:                                              …

    Linux干货 2018-03-26

评论列表(1条)

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

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