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

相关推荐

  • bash基础特性的应用

    1:使用命令行展开功能来完成以下练习:     (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d ~]# touch  /tmp/{a_{c,d},b_{c,d}}     (2)、创建/tmp/mylinux目录下的:      mkdir…

    Linux干货 2016-11-06
  • 初识Linux

        Linux系统现在如日中天,特别是在如今的互联网+大潮下,大数据、云计算、移动设备嵌入式设备等,无不显现着linux的身影。 现在,问题来了,Linux究竟是个什么鬼?我们平时经常接触的RedHat,CentOS等又是什么东东?别急,让我们一起来慢慢了解一下。     Linux是个类Unix操作系统,设计风格…

    Linux干货 2016-05-23
  • Linux磁盘管理进阶

    Linux磁盘管理进阶 dd命令 SWAP与移动介质 磁盘配额 RAID dd命令 dd – convert and copy a file Copy a file, converting and formatting according&…

    Linux干货 2016-09-05
  • 管理分区和文件系统及挂载设备

    管理分区 列出块设备 lsblk       分区工具fdisk fdisk -l /dev/sdX 查看硬盘分区信息 CentOS7: fdisk -l /dev/sda 默认开启dos及扇区显示模式    开启dos及柱面显示模式:fdisk -c=dos -u=cylinders -l /dev/sda…

    2017-08-26
  • Linux-文件基本权限及特殊权限详解

    Linux文件基本权限及特殊权限详解 背景 Linux文件基本权限和特殊权限对于初学者很少烦恼,各种无法理解,所以在学到这一节时,将自己学到的以及自己的理解写出来以检查自己对这个部分的掌握情况。 什么是权限 在Linux里一切皆文件,所谓的权限就是用户对文件(目录也是以个文件)的操作范围,对文件的操作包括读、写和执行,用户对文件有不同的权限就能做相应的操作。…

    Linux干货 2017-07-22
  • 鸟哥?马哥?靠边站!今天猫哥带你玩千万PV级别运维架构实战

    1.哼,从今天开始马哥linux,就是我猫哥的天下了!,马哥你奏凯! 我猫哥在此宣誓,从今以后马哥教育正式更名猫哥教育! 哼,信猫哥,得永生! 2.妹的,都好好给我学习,猫哥我盯着呢 3.猫哥我第一次出镜,给咱来个特写啊小伙,拍的好看了,猫哥就免费给你讲讲Linux运维之道。 4.哎哟,拍的还不赖,猫哥我算是45°角仰望星空了,来来,猫哥给你讲讲互联网运维架…

    Linux干货 2016-04-01

评论列表(1条)

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

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