linux文件查找--locate和find命令详解

在文件系统上查找符合条件的文件

文件查找工具:
  1.locate:非实时查找(数据库查找)
  2.find:实时查找

应用:生产环境中查找到系统中占用磁盘空间较大且时间比较久的大日志文件,对这个较大的日志文件做处理(删除移走等),防止它占用更多的磁盘空间。

locate概述

locate概述
  1.locate查询依赖于系统上预建的文件索引数据库/var/lib/mlocate/mlocate.db
  2.索引的构建是在系统较为空闲时自动进行(周期性任务),执行updatedb可以更新数据库
  3.索引构建过程需要遍历整个根文件系统,很消耗资源
  4.locate和updatedb命令来自于mlocate包

locate可以快速定位文件的位置,它的搜索速度非常快。无论文件目录层级有多深,基本上一回车就能立即找到。

为什么locate的查找速度这么快?
locate事先已经把所有磁盘文件的信息建立在一个索引数据库里“/var/lib/mlocate/mlocate.db”,这个索引数据库已经存放了文件的列表和路径。
在这里插入图片描述
应用:tomcat的catalina.out日志会打印很多内容,占据了大量的磁盘空间。现在需要快速找到这个日志文件,将其清理或移走。
在这里插入图片描述
上图是公司测试环境的catalina.out日志文件,短短几天就从0K打印了109M的内容了,之前我找这个日志文件都是一级一级目录的去cd,这样速度很慢。使用了locate后,命令后面直接跟文件名,一回车就找到了。

locate的缺点:mlocate.db数据库不是实时更新的,如果新增了一个文件,则需要使用“updatedb”更新“mlocate.db”数据库才可以找到新增的文件。也就是mlocate.db会有一定的滞后性。

安装mlocate

在这里插入图片描述
安装完mlocate包后,就可以执行updatedb了
在这里插入图片描述

locate格式

格式:
  locate [OPTION]... [PATTERN]...

常用选项
  -i     不区分大小写的搜索
  -n  N  只列举前N个匹配项目
  -r     使用基本正则表达式

范例:

#搜索名称或路径中包含"“conf"的文件
locate conf

#使用Regex来搜索以".conf"结尾的文件
locate -r '\.conf$'

在这里插入图片描述

locate特点

locate特点
  1.查找速度快
  2.模糊查找
  3.非实时查找(滞后性)
  4.搜索的是文件的全路径,不仅仅是文件名
  5.可能只搜索到用户具备读取和执行权限的目录
  6.适合查找不经常变更的文件,如系统配置文件,日志文件等

find概述

find是实时查找工具,通过遍历指定路径完成文件查找。

find是Linux中强大的搜索命令,不仅可以按照文件名搜索文件,还可以按照权限、大小、时间、inode号等来搜索文件。但是 find 命令是直接在硬盘中进行搜索的,如果指定的搜索范围过大,find命令就会消耗较大的系统资源,导致服务器压力过大。所以在使用 find 命令搜索时,不要指定过大的搜索范围。

在这里插入图片描述

find特点

find工作特点
  1.查找速度略慢(在磁盘上挨个的找)
  2.精准查找
  3.实时查找
  4.查找条件丰富
  5.可能只搜索用户具备读取和执行权限的目录

格式

find [OPTION]...[查找路径][查找条件][处理动作]
find 命令的基本信息如下:
  命令名称:find。
  英文原意:search for files in a directory hierarchy.
  所在路径:/bin/find。
  执行权限:所有用户。
  功能描述:在目录中查找文件。
  查找路径: 指定具体目标路径; 默认为当前目录
  查找条件: 指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件
  处理动作: 对符合条件的文件做操作,默认输出至屏幕

指定搜索目录层级

-maxdepth level  最大搜索目录深度,指定目录下的文件为第1级
-mindepth level  最小搜索目录深度

范例:查找/etc目录下,最深2级最浅2级目录

find /etc -maxdepth 2 -mindepth 2
#因为是以/etc为目标,所以/etc下的dnf是第一级目录,

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对每个目录先处理目录内的文件,再处理目录本身

find /data/test/ -depth

在这里插入图片描述
在这里插入图片描述

文件名和inode查找

-name "文件名称"        支持使用glob,如:*, ?, [], 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值