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

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

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

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

非实时查找(数据库查找):locate

locate可以快速的定位磁盘文件的位置,它的搜索速度非常快。基本上一回车就能立即找到(无论文件有多少,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会有一定的滞后性。

locate特点

1.查找速度快
2.模糊查找
3.非实时查找(滞后性)
4.搜索的是文件的全路径,不仅仅是文件名
5.适合查找不经常变更的文件,如系统配置文件,日志文件等

实时查找:find

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

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

find特点

1.查找速度略慢(在磁盘上挨个的找)
2.精准查找
3.实时查找
4.查找条件丰富

find 命令的基本信息如下:
命令名称:find。
英文原意:search for files in a directory hierarchy.
所在路径:/bin/find。
执行权限:所有用户。
功能描述:在目录中查找文件。

查找/etc目录的最深2级最浅2级目录

find /etc -maxdepth 2 -mindepth 2
#/etc是一级目录,/dnf是二级目录

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

find -depth

find -depth :对每个目录先处理目录内的文件,再处理目录本身。

find -name “文件名称”

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

find -size [+|-]

常用单位:k,m,G,c(byte) ,注意大小写敏感
应用:系统里有一个大约210M的catalina.out的日志文件
在这里插入图片描述

find 根据时间戳

find -atime [+|-]num
num表示[num,num+1)
+num表示[num+1,∞]
-num表示[0,num)

#以“分钟”为单位
-amin
-mmin
-cmin

linux下,一个文件有三种时间:
访问时间:atime 对文件进行一次读操作,它的访问时间就会改变,cat、more等操作。
修改时间:mtime 文件的内容被最后一次修改的时间。
状态时间:ctime 文件的状态被改变的时候,状态时间就会随之改变。

find ./ -ctime -5

在这里插入图片描述

find 处理动作

-print:默认的处理动作,显示至屏幕
-ls:类似于对查找到的文件执行“ls -dils”命令格式输出
-fls file:查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file
-delete: 删除查找到的文件,慎用!
-ok COMMAND {} \ :对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值