wiki/运维/操作系统/Linux/笔记/9.文件查找.md
2026-04-08 15:02:24 +08:00

3.8 KiB
Raw Blame History

1、文件查找概览

Linux 中查找文件时,最常用的命令之一就是 find。它功能非常强,既可以按名称找文件,也可以按类型、属主、权限、时间、大小等多种条件组合查找。

在日常运维中,find 主要用于:

  • 定位某个文件或目录
  • 查找大文件、旧文件、异常权限文件
  • 结合删除、统计、打包等命令做批量处理

2、find 基本格式

find [路径] [条件] [动作]

例如:

find /var/log -name "*.log"

表示在 /var/log 下查找所有 .log 文件。

3、目录深度控制

3.1 -maxdepth

限制最大搜索深度。

find /etc -maxdepth 2 -name "*.conf"

3.2 -mindepth

限制最小搜索深度。

find /data -mindepth 2 -type f

4、按名称和 inode 查找

4.1 -name

按文件名精确匹配查找,区分大小写。

find /tmp -name "test.txt"

4.2 -iname

按文件名查找,不区分大小写。

find /tmp -iname "test.txt"

4.3 -inum

按 inode 编号查找。

find / -inum 123456

这个场景在排查硬链接文件时比较有用。

5、按属主和属组查找

5.1 按用户查找

  • -user:按用户名查找
  • -uid:按 UID 查找

示例:

find /home -user lzc
find /home -uid 1000

5.2 按组查找

  • -group:按组名查找
  • -gid:按 GID 查找

示例:

find /data -group devops
find /data -gid 1001

6、按文件类型查找

6.1 -type

常见类型值:

  • f:普通文件
  • d:目录
  • l:符号链接
  • s:套接字文件
  • b:块设备文件
  • c:字符设备文件
  • p:管道文件

示例:

find /etc -type f
find /var -type d

7、条件组合

find 支持逻辑组合条件:

  • -aAND
  • -oOR
  • -notNOT

示例:

find /data -type f -a -name "*.log"
find /data \( -name "*.log" -o -name "*.txt" \)

8、按大小查找

8.1 -size

可以按文件大小查找,常见单位:

  • kKB
  • MMB
  • GGB

示例:

find /var/log -size +100M

表示查找大于 100 MB 的文件。

9、按时间查找

时间条件是 find 的高频用法之一。

9.1 分钟级条件

  • -amin:按访问时间(分钟)
  • -cmin:按状态变更时间(分钟)
  • -mmin:按内容修改时间(分钟)

9.2 天级条件

  • -atime:按访问时间(天)
  • -ctime:按状态变更时间(天)
  • -mtime:按内容修改时间(天)

9.3 参考文件比较

  • -anewer:访问时间比指定文件新
  • -cnewer:状态变更时间比指定文件新
  • -newer:修改时间比指定文件新

9.4 常见示例

查找最近 2 天内修改过的普通文件:

find /var -type f -mtime -2

查找比某个文件更新的文件:

find /etc -type f -newer /tmp/base.txt

查找 2 天内创建或修改的文件,也可以用:

find /var -type f -newermt "2 days ago"

10、常见实战场景

10.1 查找大日志文件

find /var/log -type f -size +500M

10.2 查找空文件

find /data -type f -size 0

10.3 查找最近修改的配置文件

find /etc -type f -mtime -1

10.4 查找某用户拥有的文件

find /home -user lzc

11、小结

  • find 是 Linux 中最强大的文件查找命令之一
  • 它可以按名称、类型、属主、大小、时间等多条件组合搜索
  • -type-name-size-mtime 是最常用的几类条件
  • -maxdepth-mindepth 能帮助控制搜索范围
  • 实战中最常见的场景是找日志、大文件、旧文件、异常文件