文件查找locate与find

  文件查找的工具

文件查找的工具

 locate :非实时文件查找工具

查询依赖于事先构建的索引数据库: /varlib/mlocatr/mlocate.db
索引数据库是需要手动创建的,用 updatedb 命令实现创建更新,但较耗费系统资源,建议系统空闲时进行
locate的工作特点:

  1. 查找速度快,因为事先已构建索引数据库
  2. 模糊查找
  3. 非实时查找,根据数据库查找的,一般近期创建的文件未更新入数据库
  4. 搜索的是文件全路径
  5. 可能只搜索当前用户具备读取和实行权限的目录

相关选项

locate  -i    不区分大小写
        -n    指定显示前几个
        -r    使用正则表达式
示例:  locate  conf  搜索名称或路径中带有conf的文件
        locate  -r  ‘\.conf$’ 搜索以.conf结尾的文件  

  find:实时查找工具

通过扫描指定路径对文件进行查找
工作特点:

  1. 查找速度略慢
  2. 精确查找
  3. 实时查找
  4. 可能只搜索用户具备读取和执行权限的目录

    语法:find /路径 -选项 -处理动作
    路径默认为当前所在路径

查找相关选项:

  1. 按照条件查找

    find /root -user li   查找属主为li的文件
         -group li   查找属组为li的文件
         -uid 11 查找属主ID为11的文件
         -gid 11 查找属组ID为11的文件
         -nouser  查找没有属主的文件
         -nogroup 查找没有属组的文件  
  2. 按文件类型查找
    find /root -type  f  查找文件类型为f,即普通文件的文件
    同上b:块设备文件
        c:字符设备文件
        d:目录文件
        l:符号链接文件
        s:套接字文件
        p:管道文件
        -empty 空文件或目录
    示例: find /root -type d -empty  查找root下空的目录文件  
  3. 按文件大小搜索:
    支持单位: k,m,g
    find /root -size n 搜索大小为n的文件(实际搜索大小为n-1至n大小的文件)
                    -n 搜索0至n-1大小的文件
                    +n 搜索大于n的文件
    示例:find /root -size 100m  搜索root下99m到100m的文件  
  4. 按时间戳搜索:
    find /root atime n 搜索n+1至n天间被读取过的文件  以天文单位
                     -n
                     +n
               ctime n 搜索n天至n-1天元数据发生过更改的文件
                     -n
                     +n
               mtine n 搜索n天至n-1天内容发生过更改的文件
                     -n
                     +n
    同上       amin  n  以分钟为单位
               cmin  n
               mmin  n  
  5. 按权限搜索:
    find /root -perm 761   精确匹配   属主拥有7或属组拥有6或其他拥有1即匹配
               -perm /761  模糊匹配  属主拥有7中任何一项或属组拥有6中任何一项或其他拥有1的权限及匹配
               -perm -761  超·精确匹配 必须属主拥有7权限,同时属组拥有6权限,同时其他拥有1权限才匹配  
  6. 其他搜索选项;
    -maxdepth n 指定搜索最大深度为n
    -mindepth n 指定搜索最小深度为n
    -depth  先处理目录内文件,在处理目录
    -name 按文件名称搜索  支持通配符
    -inum 按inode编号搜索
    -samefile data 搜索与data相同inode号的文件
    -links n 搜索链接数为n的文件   

 可跟多个搜索条件:用-a或-o或-not组合起来

-a 与
-o 或
-not 非   或选项前加!
示例 :find /root -name file -o -user root
      find /root -name file -a -user root
      find /root -name file -not -user root

处理相关动作:

    find /root -name data  -ls 类似ls -l命令,显示额外信息
                            -delte 删除
                            -fls /xx/ 将搜索到的文件长格式信息保存在xx文件中
                            -ok 命令 {}/; 也可以接-ok,后面直接跟常用命令,结尾格式要求必须为{}/; {}引用前面搜索到文件的绝对路径 每个文件执行前都会要求用户交互式确认
                             -exec 命令 {}/; 同-ok上 非交互式  

find处理动作是将前面搜索到的所有文件一次性传输给后面处理命令的,有些命令可能无法处理过多参数,需要用到xargs传输
xargs用法: 参数 |xargs 处理动作
示例

  find -type f -name “*.txt” -print0 | xargs -0 rm   

xargs传输默认分隔符为空格或回车,文件名可能有空格作为命名引发冲突,此时用到 -print0 | xargs -0 指定分隔符为NUL,此处NUL为空,是十进制的0对应的ascii码中NUL


至此

原文地址:https://blog.51cto.com/14322599/2409527

时间: 2024-11-06 11:42:10

文件查找locate与find的相关文章

Linux基础之文件查找:locate、find

引言: 在学习Linux中的文件查找时,突然联想到平时用的搜索引擎,在生活中我们想获取什么信息,在google等搜索引擎里面敲入就能列出符合我们条件的相关信息.如果我们不满意搜索结果可以进一步精确我们想查找内容的搜索内容,这在Linux的文件查找中称为精确匹配,但是如果我们虽然知道我们想要的内容,但是找不到特别精确的言辞来形容它因此只能输入描述性内容为搜索条件,这种在Linux的文件查找中可以称为模糊匹配.本文的初衷是希望这篇文章可以解决大家在使用Linux的过程中不至于因为查找某个文件找不到而

linux 文件查找 (locate 与 find)

文件查找 目录 1.locate2.find 一. locate locate命令基于数据库db,所以不能实时更新 他有如下的特点: 1.查找速度快 2.是模糊查找(可能搜到了文件,也有可能搜到了目录) 3.是非实时的查找 4.由于权限的原因可能只查找到一部分的文件 locate 参数: -i 不区分大小写 -n N 只列举前N个项目 -r 支持正则表达式 locate xiaoyu 搜索名称或路径中带有"xiaoyu"的文件 例: 二. find 实时查找工具,通过遍历指定路径完成文

文件查找-locate find 学习笔记

locate : (速度快) 非实时,模糊匹配 .   查找是根据全系统数据库进行的 #updatedb   手动生成文件数据库 find : (速度慢) 实时查找 , 精确查找 , 支持众多查找标准 遍历指定目录中的所有文件完成查找 , find 查找路径 查找标准 查找到以后的处理运作 查找路径 : 默认当前目录 查找标准 : 默认为指定路径下的所有文件 处理运作 : 默认为显示 匹配标准 : -name 'FILENAME' : 对文件名做精确匹配 文件名通配: -iname 'FILEN

Linux下文件查找

linux文件查找 find 文件查找 locate 文件查找:在文件系统上查找符合条件的文件 locate 依赖于事先构建好的索引库     查询系统上预建的文件索引数据库     /var/lib/mlocate/mlocate.db 系统自动实现,周期性任务. 手动创建跟新数据库(updatedb,非常消耗系统资源) 慎用! 工作特性:     查找速度快     模糊查找     非实时查找,可能文件已经有变动或不存在     locate [option]...PATTERN...  

7.3 文件查找

7.3 测试: 整数测试 -le -lt 字符测试 == != > < -n -z(字符测试,开始说-s,错了) 文件测试 -e -f if [ $# -gt 1 ];then 组合测试条件 -a  与关系 -o  或关系 !   非关系 if [ $# -gt 1 -a $# -le 3 ] if [ $# -gt 1 ] && [ $# -le 3 ] q,Q,quit,Quit #!/bin/bash # if [ $1 == 'q' -o  $1 == 'quit' -

文件查找 find命令

文件查找 locate    非实时,查找是根据全系统文件数据库进行:模糊匹配:速度快: # updatedb, 手动生成文件数据库 find        实时:精确:支持众多查找标准(文件名,文件类型,文件权限查找,正则表达式匹配查找):遍历指定目录中的所有文件完成查找,速度慢: # find 查找路径 查找标准 查找到以后的处理运作 查找路径,默认为当前目录 查找标准,默认为指定路径下的所有文件 处理动作,默认为显示到屏幕 查找标准,匹配标准: -name 'FILENAME'  对文件名

7-2 文件查找和压缩归档

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

马哥-文件查找和压缩-查找篇

文件查找和压缩 文件查找 文件查找:locate:非实时查找 find:实时查找 locate [OPTION] PATTERN 非实时搜索 工作特点:查找速度快 模糊查找 非实时查找 搜索的是文件的全路径,不仅仅是文件名 可能只搜索用户具备读取和执行权限的目录 locate [OPTION] -i #不区分大小写 -n NUM #显示前NUM行 -r #使用正则表达式 #locate命令搜索的数据库 [[email protected] /data/shell]#ll /var/lib/mlo

vim文本编辑及文件查找应用3

文件查找 locate,find两个命令 在文件系统上查找符合条件的文件: 实现工具:locate,find locate命令: 依赖于事先构建好的索引库,索引库可以由下边两种方式构建 系统自动实现(周期性任务):不能实时更新 手动更新数据库(updatedb): 工作特性: 查询速度快: 模糊查找: 非实时查找: SYNOPSIS locate [OPTION]... PATTERN... -b:只匹配路径中的基名 -c:统计出共有多少个符合条件的文件 -r:BRE 注意:索引构建过程需要遍历