Linux find 命令使用整理

find 是 Linux 系统中最常用的文件搜索命令之一。它可以根据文件名、时间、大小、类型、权限等条件在目录树中进行高效搜索,并支持批量处理、删除、执行命令等功能。

1. 基本语法

1
find [路径] [表达式]

默认路径是当前目录,默认动作是 -print

常见的 find 组件包括:

  • 路径:搜索起点
  • 表达式:过滤条件
  • 动作:-print-delete-exec

2. 常见搜索示例

按文件名查找

1
find /etc -name "*.conf"

按文件类型查找

1
find /var -type f

查找最近 1 天内修改过的文件

1
find /tmp -mtime -1

查找大于 100MB 的文件

1
find /var -size +100M

3. 删除过期文件

如果需要删除 /tmp 目录中超过 1 天的 coredump 文件,可以使用:

1
/usr/bin/find /tmp -mtime +1 -delete

其中:

  • -mtime +1:表示修改时间大于 1 天
  • -delete:删除匹配文件

4. 配合 -exec 执行命令

1
find /tmp -name "*.log" -exec rm -f {} \;

这会对匹配到的每个日志文件执行删除操作。

5. 限制搜索深度

1
find /var -maxdepth 2 -type f

-maxdepth 可以限制递归搜索的层级,适合缩小搜索范围。

6. 按权限过滤

1
find /home -perm 777

或者:

1
find /home -type f -perm -644

7. 常见选项说明

选项 含义
-name 按文件名匹配
-path 按路径匹配
-type 按文件类型匹配
-size 按文件大小匹配
-mtime 按修改时间匹配
-user 按所属用户匹配
-group 按所属用户组匹配
-maxdepth 最大递归深度
-delete 删除匹配结果
-exec 对结果执行命令

8. 实用建议

  • 在生产环境中,删除文件前建议先用 find 进行预览,确认匹配范围无误。
  • 若要批量处理文件,优先使用 -exec-delete,避免手动逐个操作。
  • 对于很大的目录树,建议配合 -maxdepth-size-mtime 等条件减少搜索量。

9. 总结

find 是 Linux 环境中不可或缺的文件管理工具之一。它不仅能快速定位文件,还能结合时间、大小、权限等条件实现批量处理。熟练掌握 find 的常用用法,能显著提升运维和文件管理效率。


Linux find 命令使用整理
https://jgq12138.github.io/2023/06/19/linux_find/
作者
JGQ12138
发布于
2023年6月19日
许可协议