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

举报
yd_241044277 发表于 2026/11/06 10:08:39 2026/11/06
【摘要】 find 是 Linux 中最常用的文件定位工具。本文速记按名称、时间、大小、类型查找文件的常用组合,以及 -exec / -delete / xargs 批量处理用法,方便日常排查与清理。

在 Linux 运维和日常开发中,find 是定位文件最常用的工具之一。本文整理了最常用的几类用法,方便随手查阅。

一、按名称查找

# 在当前目录递归查找 nginx.conf
find . -name "nginx.conf"

# 忽略大小写
find /etc -iname "*.CONF"

# 只找目录 / 只找普通文件
find /var/log -type d -name "nginx*"
find /var/log -type f -name "*.log"

二、按时间查找

-mtime 以天为单位,-mmin 以分钟为单位,+ 表示超过,- 表示以内。

# 最近 1 天内修改过的文件
find /data -type f -mtime -1

# 30 分钟内修改过的配置
find /etc -type f -mmin -30

# 7 天前的日志(常用于清理)
find /var/log/app -name "*.log" -mtime +7

三、按大小查找

# 大于 500MB 的文件,排查磁盘占满时很有用
find / -type f -size +500M 2>/dev/null

# 小于 1KB 的空壳文件
find . -type f -size -1k

# 空文件和空目录
find . -empty

四、对结果执行操作

# 删除 7 天前的日志(先不加 -delete 预览一遍更安全)
find /var/log/app -name "*.log" -mtime +7 -delete

# 批量修改权限
find /srv/www -type f -exec chmod 644 {} \;
find /srv/www -type d -exec chmod 755 {} \;

# 与 xargs 配合,处理大量文件更高效
find . -name "*.tmp" -print0 | xargs -0 rm -f

五、限制深度与排除目录

# 只查找两层以内
find . -maxdepth 2 -name "*.yaml"

# 排除 node_modules 目录
find . -path ./node_modules -prune -o -name "*.js" -print

小结

  • 先用 -type、-name 缩小范围,再叠加时间和大小条件;
  • 涉及删除时,先去掉 -delete 预览结果;
  • 文件很多时用 -print0 | xargs -0,避免文件名带空格出错。

掌握这几组组合,日常排查日志、清理磁盘、批量改权限基本都够用了。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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