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

相关推荐

  • 内核参数修改 内核编译 第14天

    Linux内核:单内核,模块化 内核的某些模块 编译进内核本体 [*] 编译成内核模块 [M] 不选择使用     [ ] 内核的组成部分 /boot/vmlinuz-VERSION /lib/modules/VERSION/ *.ko 模块间有可能有依赖关系 内核模块管理 lsmod:显…

    Linux干货 2016-01-18
  • 马哥教育网络班21期+第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 集线器(HUB)是在OSI模型的第一层——物理层——连接多台主机、延长网络的设备。其主要功能是将从一个端口接收到的数据包转发给所有端口。中继器(Repeater)是将由电缆传过来的电信号或光信号调整波形和放大再传给另一个电缆的设备,提供多端口服务的中继器称作集线器。二者的主要区别…

    Linux干货 2016-09-05
  • sed 高级编辑命令、模式空间、保持空间、vi 可视化模式、vimrc、地址定界

    sed 高级编辑命令、模式空间、保持空间、vi 可视化模式、vimrc、地址定界 sed(stream deitor):行编辑器 【概述】sed是一种流式编辑器,它一次处理一行内容。处理时,把当前处理的行的所有内容存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,逐行处理,不修改文件。sed主要…

    Linux干货 2016-08-11
  • 激情的魅力samba服务(热舞篇)

    正如名称一样的迷人的一个服务,充满了激情。火热的天气中更添加一分悸动,本章就尝试对下面火热的samba服务是要如何破解并掌握于手心中。(本篇当中借鉴了鸟哥私房菜和linux就该这么学还有传说中的中华小题库,通过做题来对于samba进行初步的了解)后续还会添加一篇关于samba服务的文章,作为深度了解。 首先了解下samba的来源,听说作者老道(Tridgwe…

    Linux干货 2017-08-19
  • 推荐-HA专题: 编译安装并配置DRBD

    HA专题: 编译安装并配置DRBD 前言 实验环境 DRBD介绍 安装前准备工作 获取并编译安装DRBD 配置DRBD 分区 配置文件 启动并设置DRBD 格式化并挂载 验证冗余性 总结 前言 上篇我们讲到使用corosync+pacemaker实现MySQL高可用, 但是NFS容易成为单点故障从而导致数据丢失等严重问题, 我们可以使用drbd来实现MySQ…

    Linux干货 2016-04-12
  •  编译安装步骤     大致过程:(源代码–预处理–编译–汇编–链接–执行)   第一步 下载安装开发工具“Development toos” 第二步 下载解压源代码包 仔细阅读“Install和 Read me” 第三步 使用./conf…

    Linux干货 2017-04-24

评论列表(1条)

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

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