应限定路径并结合大小、类型、修改时间三重条件查找大于1gb的临时文件:优先扫描/tmp、/var/tmp、/var/log、~/.cache及容器临时目录,用find命令配合-size +1g、-mtime +7等过滤,再确认后安全清理。

直接用 find 查找大于 1GB 的临时文件,关键不是只看文件名含“tmp”,而是结合路径特征、文件类型和大小三重条件——因为真正的临时文件往往散落在 /tmp、/var/tmp、用户家目录下的 .cache 或应用日志目录中,且未必带 “tmp” 字样。
定位常见临时文件存放路径
Linux 中临时文件通常集中在以下几类位置,优先在这些路径下查,比全盘扫描更高效、更安全:
-
/tmp和/var/tmp:系统级临时目录,生命周期短,但容易堆积大文件 -
/var/log:日志可能膨胀成 GB 级(如journalctl归档、MySQL binlog、应用 wrapper.log) -
~/.cache/(当前用户)或/root/.cache/:浏览器缓存、包管理器缓存(如apt、dnf)、IDE 缓存等 -
/var/lib/docker/tmp或/var/lib/containerd/tmp(若运行容器):镜像构建中间层、未清理的 volume 临时数据
按大小 + 路径组合查找(推荐)
不建议盲目执行 find / -type f -size +1G,既慢又易误触系统关键文件。应限定路径并加过滤:
- 查
/tmp下所有 >1G 的普通文件:find /tmp -type f -size +1G 2>/dev/null - 查用户缓存中大文件(以当前用户为例):
find ~/.cache -type f -size +1G 2>/dev/null - 查日志目录里超大的日志文件:
find /var/log -type f -name "*.log" -size +1G 2>/dev/null - 查 MySQL 或 PostgreSQL 的临时/日志文件(常藏在
/var/lib/):find /var/lib/mysql /var/lib/postgresql -type f -size +1G 2>/dev/null
识别真假“临时文件”:别光看名字
很多文件名含 tmp 却不是临时文件(比如数据库表文件 tbl_xxx.ibd),而真正该清的临时文件可能叫 core.12345 或 dump.bin。判断依据是:
-
修改时间是否久远:临时文件一般近期创建或频繁更新,超过 7 天未访问的 >1G 文件大概率可清理
示例:find /tmp -type f -size +1G -mtime +7 2>/dev/null -
是否被进程占用:用
lsof -nP +D /tmp | grep deleted可发现已删除但句柄仍打开的大文件(磁盘空间未释放) - 是否属于已卸载服务残留:比如停用的 MyCat、旧版 Tomcat 日志,路径明确但无人维护
查完后安全清理的常用做法
找到目标后,不要直接 rm -f。先确认再操作:
- 用
file或head -c 100看文件头,排除核心数据文件(如.ibd、.binlog) - 对日志类文件,优先用
truncate -s 0 filename清空内容而非删除(保留 inode,避免服务报错) - 对确认无用的缓存或 core dump,可用
rm -i交互式删除,防手滑 - 批量清理前建议先
du -sh *统计所在目录总用量,避免删错目录层级











