find 命令实用速记:按名称、时间、大小快速定位文件
【摘要】 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)