find 命令实用速记:按名称、时间、大小快速定位文件

举报
yd_254170217 发表于 2026/11/11 19:24:24 2026/11/11
【摘要】 find 是 Linux 下按条件搜索文件的利器,比一层层翻目录快得多。掌握 -name、-mtime、-size 这三种条件,就能应付日常九成的定位需求。本文记几个最常用的用法,照着敲就能用。 一、按名称:-name 与通配符按文件名查找是最常见的需求,想找某个日志或配置文件,一条命令就够了。find /var/log -name "*.log"find . -name "config*....

find 是 Linux 下按条件搜索文件的利器,比一层层翻目录快得多。掌握 -name、-mtime、-size 这三种条件,就能应付日常九成的定位需求。本文记几个最常用的用法,照着敲就能用。

一、按名称:-name 与通配符

按文件名查找是最常见的需求,想找某个日志或配置文件,一条命令就够了。

find /var/log -name "*.log"
find . -name "config*.yaml"
find /home -iname "*.jpg"

-name 区分大小写,-iname 不区分大小写。通配符一定要加引号,否则会被 shell 提前展开,find 收到的就不是你想要的模式。只想找文件加 -type f,只想找目录用 -type d,先限定类型能少很多无关结果。

二、按时间:-mtime、-mmin 与 -newer

清理旧日志、找回最近改过的文件,都要靠时间条件。

find . -mtime -7
find . -mtime +30
find /tmp -mmin -60 -type f
find . -newer ./last_backup.txt

-mtime -7 表示 7 天内修改过,+30 表示 30 天前修改过,数字前不带符号表示正好是那一天;-mmin 以分钟为单位,适合查最近一小时内变动的文件。-newer 以某个文件为基准,找出比它更新的文件,做增量备份前很实用。

三、按大小:-size 与单位

磁盘快满时,先用 find 把大文件揪出来。

find . -size +100M
find /var -size -10k -type f
find . -size +1G -exec ls -lh {} \;

+100M 表示大于 100MB,-10k 表示小于 10KB,不带 + 或 - 表示刚好等于这个大小。单位常用 k(KB)、M、G;找到大文件后接 -exec ls -lh {} ;,可以直接看到大小和完整路径。

四、组合条件与批量处理

多个条件默认是“与”关系,-o 表示“或”,! 表示“非”,括号要转义或加引号:

find . \( -name "*.log" -o -name "*.tmp" \) -mtime +7
find . -name "*.bak" ! -path "./backup/*"
find . -name "*.log" -mtime +30 -exec rm -f {} \;

用 -exec 可以对找到的文件批量处理,比如删除过期日志。执行删除前最好先不加 -exec 看一眼结果,确认无误再动手,避免误删。

五、排除干扰:权限报错与目录跳过

find 遇到无权访问的目录会输出 Permission denied,把报错重定向到 /dev/null 即可;-prune 可以跳过不需要的目录:

find / -name "*.conf" 2>/dev/null
find . -path "./node_modules" -prune -o -name "*.js" -print

记住顺序:先定搜索范围,再加条件,最后看结果。找大文件、旧日志、过期备份时,这套命令几分钟就能定位,不用再逐个目录翻。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。