当前位置:首页>Linux>Linux找文件命令!find 命令学习

Linux找文件命令!find 命令学习

  • 2026-10-11 07:45:47
Linux找文件命令!find 命令学习

玩 Linux 绕不开 find。相比于 ls 只能看当前目录,find 是全域递归搜索,按名字、大小、时间、类型、权限精准筛文件,运维排查、清理磁盘、批量改文件全靠它。

一、核心万能语法find 搜索路径 [条件] [执行动作]路径:. 当前目录,/ 全盘,/home 指定目录条件:文件名、大小、时间、类型、权限等动作:默认输出路径,可搭配 -exec /xargs 批量处理

最常用:按文件名查找核心参数:-name(区分大小写)、-iname(忽略大小写),支持 * 通配符。

全盘查找 nginx.conf 配置文件

find / -name "nginx.conf"

当前目录下所有 .log 日志文件

find . -name "*.log"

忽略大小写,查找所有 txt 文件

find . -iname "*.txt"

限定查找深度(只查当前 1 层,不递归子目录)

find . -maxdepth 1 -name "*.php"
小技巧:加 - maxdepth N 避免递归太深、搜索卡顿,日常高频使用。

二、按文件类型查找(精准过滤,不混目录)核心参数 - type,日常只记 3 个:f:普通文件d:文件夹目录l:软链接

查找当前所有普通文件

find . -type f

查找当前所有目录

find . -type d

只查当前目录下的 js 文件(不递归)

find . -maxdepth 1 -type f -name "*.js"

三、按文件大小查找:专治磁盘爆满磁盘告警、空间不足,用这组命令快速揪出大文件。单位:k KB、M MB、G GB符号:+ 大于、- 小于、无符号 等于

查找当前目录大于 100M 的文件

find . -size +100M

查找 50M~100M 之间的文件

find . -size +50M -size -100M

查找小于 10K 的小文件(清理零碎垃圾)

find . -size -10k

四、按时间查找:清理过期日志神器三个核心时间参数,运维必备:-mtime:文件内容修改时间(最常用)-ctime:文件属性修改时间(权限、文件名)-atime:文件访问时间

单位:天;+7 7 天前、-7 7 天内

查找 7 天前修改的所有文件(过期日志)

find . -type f -mtime +7

查找 24 小时内修改的文件(排查今日变更)

find . -type f -mtime 0

查找 7 天内修改的文件

find . -type f -mtime -7

五、高阶实战:查找 + 批量处理(核心价值)find 真正强大的不是找文件,是找到后批量操作,搭配 -exec 或 xargs 效率拉满。

1、批量删除过期文件(常用临时文件清理)

删除 /tmp 下 7 天前的所有临时文件

find /tmp -type f -mtime +7 -exec rm -f {} ;

2、统计指定文件数量

统计站点所有 php 文件总数

find /var/www/html -type f -name "*.php" | wc -l

3、批量修改文件权限

所有日志文件统一设为 644 权限

find . -type f -name "*.log" -exec chmod 644 {} ;

所有目录统一设为 755 权限

find . -type d -exec chmod 755 {} ;

4、批量查找文件内容(替代繁琐 grep)

在所有 js 文件中查找包含 error 的内容

find . -type f -name "*.js" | xargs grep "error"

六、高频速查表

按名称

find . -name "*.log"

忽略大小写

find . -iname "*.txt"

限制搜索深度

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

只查文件 / 目录

find . -type ffind . -type d

查大文件

find . -size +100M

查过期文件

find . -mtime +7

批量删除过期文件

find . -mtime +7 -exec rm -f {} ;

最新文章

随机文章