Linux find 命令入门:五分钟定位磁盘上的大文件
磁盘告警之后,去哪找真凶
上一篇讲了 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 就是磁盘告警夜最可靠的探照灯。
- 点赞
- 收藏
- 关注作者
评论(0)