Linux find 命令入门:五分钟定位磁盘上的大文件

举报
yd_221252513 发表于 2026/11/08 13:34:45 2026/11/08
【摘要】 磁盘告警之后去哪找真凶?find 按 size、mtime、name 三维定位大文件与陈年旧账,配合 xargs 与 -exec 安全清理,一条命令链讲透。

磁盘告警之后,去哪找真凶

上一篇讲了 df 与 du 的账目对齐,这一篇解决下一个问题:知道某个目录占了 50G,里面具体是谁?逐层 ls 太慢,find 命令按大小、时间、名字三个维度直接定位目标,是磁盘排查的第二把刀。

按大小找:-size 与排序组合

找出 /var 下超过 100M 的文件:find /var -type f -size +100M。想按大小排序输出前二十名,配合 du 或 ls 管道即可。注意 -size 的单位:+100M 是“大于100兆”,不带加号是精确匹配——找大文件永远用加号。

按时间找:-mtime 圈出陈年旧账

清理目录最怕误删热数据,用时间维度圈定范围:find /data -type f -mtime +90 是“90 天之前修改过”的文件,-mtime -7 则是最近 7 天内动过的。先统计再删除:find /data -type f -mtime +90 | wc -l 看看规模,确认没有误伤再进入下一步。

安全清理:-exec 与 xargs 两条路

删除动作必须留一手。稳妥路线:find /data -type f -mtime +90 -name "*.log" -exec rm {} \; ——先把 -name "*.log" 限定死文件类型再删。文件数量巨大时 xargs 更高效:find ... | xargs rm -f。两条铁律:先不加删除参数跑一遍看列表,确认列表干净再加 rm;永远带 -name 或 -type 限定,绝不裸奔。

名字定位与排除陷阱

-name 支持通配符,-iname 忽略大小写;排除目录用 -path /proc -prune -o 的组合,避免在虚拟文件系统里空跑。find 还能按用户(-user)、按权限(-perm)查找——审计“哪些文件是 777”就是一行命令的事。

小结

磁盘排查三件套至此凑齐:df/du 管对账,find 管定位,lsof 管回收。按“维度圈定、先看后删、永远带限定”三条纪律操作,find 就是磁盘告警夜最可靠的探照灯。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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