文件查找命令 locate 和 find

本文详细介绍了Linux系统中查找文件的两个命令——locate和find。locate基于预构建的索引快速查找文件,适用于非实时搜索,而find通过实时搜索路径,适合查找系统文件。文章分别讲解了两者的特性、用法、选项以及各种查找条件,如文件名、属主、大小、时间戳等。此外,还提供了多个练习题以加深理解。
摘要由CSDN通过智能技术生成


一、非实时搜索locate

(一)locate特性

  • 1、依赖于事先构建的索引,在文件系统上查找符合条件的文件;
  • 2、索引数据库位置 /var/lib/mlocate/mlocate.db ;
  • 3、默认是系统每次开机后自动开始执行更新索引数据库任务;
  • 4、手动更新索引数据库:
    • updatedb
  • 5、搜索速度超快,但不适合搜索那些经常变化的文件,即非实时搜索;
  • 6、搜索的是文件的绝对路径;
  • 7、默认是模糊搜索。

(二)用法格式

locate   [OPTION]   KEYWORD

(三)有用的OPTION选项

  • -i :不区分大小写
  • -r :使用正则表达式
  • -n N :只列举前N个匹配的项目

(四)⚠️注意事项⚠️

  • 1、默认是模糊搜索:搜索文件名称或者绝对路径中包含KEYWORD的文件;
  • 2、加 -r 选项:精确匹配正则表达式PATTERN的搜索条件。

二、实时搜索find

(一)find特性

  • 1、通过指定路径完成文件查找;
  • 2、搜索速度很慢,适合查找非系统文件,即实时查找;
  • 3、可能只搜索用户具备读取和执行权限的目录;
  • 4、默认是精确匹配。

(二)用法格式

find   [PATH]   [OPTION]   [EXPRESSION]
  • PATH:指定具体的目标路径,(省略不写)默认是当前目录;
  • EXPRESSION:指定查找条件,支持通过精确匹配文件名、大小、类型、权限的条件,也支持模糊匹配,(省略不写)默认是找出指定路径下的所有文件。

⚠️通过find查找的”所有文件”包括隐藏文件!⚠️

三、简单查找条件

(一)搜索层级

(1)指定最大搜索深度为第LEVEL层,搜索范围是第1层到第LEVEL层

find   PATH   -maxdepth   LEVEL

(2)指定最小搜索深度为第LEVEL层,搜索范围是第LEVEL层到更深层次

find   PATH   -mindepth   LEVEL

(3)只在第LEVEL层进行搜索

find   PATH   -maxdepth   LEVEL   -mindepth   LEVEL

(二)文件名

(1)通过通配符GLOB模糊匹配文件名,区分大小写

find   PATH   -name   "GLOB"

(2)通过通配符GLOB模糊匹配文件名,不区分大小写

find   PATH   -iname   "GLOB"

(3)通过正则表达式PATTERN精确匹配文件名,区分大小写

find   PATH   -regex   "PATTERN"

(三)节点号inode

(1)查找节点号为INODE的所有文件

find   PATH   -inum   INODE

(2)查找与FILENAME的节点号inode一样的所有文件

find   PATH   -samefile   FILENAME

(3)查找链接数为N的所有文件

find   PATH   -links   N

(四)属主

(1)查找属主为USERNAME的所有文件

find   PATH   -user   USERNAME

(2)查找属主为指定UID的所有文件

find   PATH   -uid   UID

(3)查找没有属主的所有文件

find   PATH   -nouser

(五)属组

(1)查找属组为GROUPNAME的文件

find   PATH   -group<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值