Linux系统清理临时文件需区分可安全清除与被进程占用的两类数据:/tmp和/var/tmp可谨慎清空,用户缓存(~/.cache等)可针对性删除,deleted但仍占空间的文件需用lsof定位并重载服务,辅以回收站、Docker缓存及旧内核清理。

清理Linux系统残留的临时文件,核心是区分“可安全清除”和“可能被进程占用”的两类临时数据。重点不是全盘删除,而是精准识别、按需释放,避免误删或服务中断。
系统级临时目录(/tmp 和 /var/tmp)
这两个目录由系统或服务自动创建临时文件,重启后通常重建,内容大多可清空:
- 执行 sudo rm -rf /tmp/* 清空 /tmp(注意:不要删 /tmp 本身,只清内容)
- 同步清理 sudo rm -rf /var/tmp/* —— 此目录内容生命周期更长,但长期未访问的文件也基本无用
- 若想更稳妥,可用 find 按时间筛选:例如 find /tmp -type f -mtime +7 -delete,只删7天前的文件
用户级缓存与临时数据(~/.cache 等)
用户程序(浏览器、IDE、桌面环境)在主目录下生成大量缓存,不直接影响系统运行,但常占数GB空间:
- 清空通用缓存:rm -rf ~/.cache/*
- 针对性清理常见应用:
• Chrome:rm -rf ~/.cache/google-chrome/Default/Cache/*
• Firefox:rm -rf ~/.cache/mozilla/firefox/*.default-release/cache2/*
• JetBrains IDE:rm -rf ~/.cache/JetBrains/* - 别忽略缩略图缓存:rm -rf ~/.thumbnails/*
被进程占用却已删除的临时文件
这类文件虽显示为 “deleted”,但仍在占用磁盘空间,常见于日志轮转后未重载服务的情况:
- 用 lsof +L1 2>/dev/null 查看所有标记为 deleted 的打开文件
- 结合大小排序快速定位:lsof +L1 2>/dev/null | awk '$NF~/deleted/ {print $0}' | sort -k7nr | head -3
- 找到对应 PID 后,优先尝试平滑重载,如:sudo kill -HUP $(pidof rsyslog) 或 sudo systemctl reload nginx;必要时才重启服务
其他易被忽略的临时残留
部分组件会在非标准位置留下临时痕迹:
- 回收站:rm -rf ~/.local/share/Trash/*(普通用户)和 sudo rm -rf /root/.local/share/Trash/*(root回收站)
- Docker 构建缓存(若装了 Docker):docker builder prune 或完整清理:docker system prune -af
- 旧内核残留(尤其影响 /boot):dpkg --list | grep 'linux-image' | awk '$1 ~ /ii/ && $2 !~ /'$(uname -r)'/ {print $2}' | xargs sudo apt purge -y(Debian/Ubuntu)
清理前建议先用 df -h 和 du -sh /tmp /var/tmp ~/.cache 快速评估各区域占用,再按需操作。不复杂但容易忽略。


















