find命令分两步:先用-size(如+100M)和-type f精准查找文件,再通过-ok、-exec rm -i或-delete安全删除,务必预览结果并限制路径与深度。

直接用 find 命令就能完成,关键是分两步:先准确查出文件,再安全删掉。别跳过确认环节,误删系统文件或数据库文件后果严重。
按大小精准查找文件
-size 是核心参数,单位要写对,符号表示范围:
-
+100M:大于 100MB(注意是大写 M,不是 MB) -
-100M:小于 100MB -
100M:正好等于 100MB(极少用,因文件大小很难精确匹配) - 其他常用单位:
K(KB)、G(GB),比如+2G表示大于 2GB
加上 -type f 可排除目录,只查普通文件:
find /var/log -type f -size +50M
删除前务必先预览
永远不要一上来就删。先列出结果,看清路径和文件名:
- 只看文件名和大小:
find /tmp -type f -size +100M -ls - 按大小倒序排列,方便聚焦最大文件:
find /home -type f -size +50M -exec ls -lh {} \; | sort -k5,5hr
特别注意:避免在 / 或 /usr 等关键路径下盲目执行,建议从具体业务目录开始,比如 /var/log、/tmp、/data。
安全删除的三种方式
选哪种取决于你对目标文件的确定程度:
-
交互式删除(推荐新手):每个文件都问一遍
find /var/log -name "*.log" -size +100M -ok rm {} \; -
带提示的删除:类似
rm -i,删前确认find /tmp -type f -size +200M -exec rm -i {} \; -
直接删除(仅限明确无误场景):
find /tmp -type f -size +500M -delete(比-exec rm更简洁,且原子性更好)
控制范围,避免误伤
加限制条件能大幅降低风险:
- 限定搜索深度:
find /opt -maxdepth 2 -type f -size +1G(最多查两层子目录) - 组合多个条件,比如“大于 100MB 且是 7 天前修改的日志”:
find /var/log -name "*.log" -type f -size +100M -mtime +7 - 排除特定路径:
find / -path "/proc" -prune -o -path "/sys" -prune -o -type f -size +500M -print


















