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

相关推荐

  • Linux 性能监控、测试、优化工具

    Linux 平台上的性能工具有很多,眼花缭乱,长期的摸索和经验发现最好用的还是那些久经考验的、简单的小工具。系统性能专家 BrendanD. Gregg 在最近的 LinuxCon NA 2014 大会上更新了他那个有名的关于 Linux 性能方面的 talk (Linux Performance Tools) 和幻灯片。    和 Br…

    Linux干货 2015-03-03
  • vsftpd+pam+MySQL—->实现虚拟用户认证

    一、安装所需要程序 1、安装vsftpd yum -y install vsftpd 2、安装MySQL yum -y install  mysql-server mysql-devel pam_mysql 二、创建虚拟用户账号 1.准备数据库及相关表 首先请确保mys…

    Linux干货 2016-09-19
  • 初探linux

    计算机的组成及其功能: 存储器:    实现记忆功能的部件用来存放计算程序及参与运算的各种数据 运算器:    负责数据的算术运算和逻辑运算即数据的加工处理 控制器:    负责对程序规定的控制信息进行分析,控制并协调输入,输出操作或内存访问 输入设备:    实现计算程序和原始…

    Linux干货 2016-10-29
  • Vim 末行模式 & crontab & scripts 练习

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;   ~]# cp /etc/rc.d/rc.sysinit /tmp     %s@^[[:space:]]\+\*@#&@g     (使用元字符 有几…

    Linux干货 2016-10-31
  • 加油吧!少年!—至我和我M25期的伙伴

    引用 衣带渐宽终不悔,为伊消得人憔悴。—王国维《人间词话》 转眼已到了27岁的年纪,不知道自己是否还称得上少年。公交上让座被小朋友成为叔叔也都是很多年的事了。哪怕再有一颗少年心现在也要肩负起整个家庭的责任。 从毕业已工作了将近六个年头,无聊的工作平凡的薪水已经使我厌倦。闭上眼睛以后需要赡养四个老人,还要照顾孩子以后这些难题映入脑海。曾经以为遥远的…

    Linux干货 2017-07-11
  • 关于大型网站技术演进的思考(十二)–网站静态化处理—缓存(4)

    原文出处: 夏天的森林   上篇我补充了下SSI的知识,SSI是一个十分常见的技术,记得多年前我看到很多门户网站页面的后缀是.shtml,那么这就说明很多门户网站都曾经使用过SSI技术,其实现在搜狐网站也还在用shtml,如下图所示: 由此可见SSI在互联网的应用还是非常广泛的。其实互联网很多网页如果我们按照动静分离策略拆分,绝…

    2015-03-11

评论列表(1条)

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

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