linux没有“一键清垃圾”的安全捷径,所谓“垃圾”实为apt缓存、旧内核、systemd日志、用户缓存和临时文件;误删/var/lib/dpkg或/usr/src等关键目录会导致apt升级失败甚至系统无法启动。

Linux 没有“系统垃圾”这个标准概念,所谓“垃圾”其实是你可识别、可定位、但容易误删的几类东西:APT 缓存、旧内核、systemd 日志、用户缓存、临时文件。直接 rm -rf 任何目录都可能让系统无法升级甚至启动失败。
怎么安全清理 APT 缓存和孤立包
apt 缓存在 /var/cache/apt/archives/,不清理能占几个 GB;但乱清会逼你重装软件时重新下载。
-
sudo apt autoclean:只删源里已下架、无法再下载的旧版.deb,保留当前系统用的版本,最稳妥 -
sudo apt clean:清空整个缓存目录,适合磁盘告急且网络稳定时用 -
sudo apt autoremove --purge:卸载不再被依赖的包(比如旧内核),--purge同时删配置文件 - 执行前先看要删什么:
sudo apt autoremove --dry-run
为什么不能直接 rm -rf /var/log/journal
直接删 /var/log/journal/ 下的文件,90% 概率导致 systemd-journald 卡死,journalctl 查不到新日志,甚至影响服务启停。
- 查当前占用:
journalctl --disk-usage - 限制最大体积(重启生效):在
/etc/systemd/journald.conf.d/limit.conf写入SystemMaxUse=500M - 立即删旧日志(留最近 3 天):
sudo journalctl --vacuum-time=3d - 如果
journalctl已卡住:先sudo systemctl stop systemd-journald,再删文件,最后sudo systemctl start systemd-journald
清理用户级缓存(~/.cache)要防误伤
~/.cache 里混着 pip、npm、thumbnail、flatpak 等缓存,有些桌面组件(如 gnome-shell)把运行时数据也放这儿。
- 先看谁占得多:
du -sh ~/.cache/* | sort -hr | head -10 - 安全清子目录:
rm -rf ~/.cache/thumbnails/*、rm -rf ~/.cache/pip/Cache - 别无脑
find ~/.cache -type f -mtime +30 -delete:没加-maxdepth 2可能钻进应用私有结构里
别碰 /proc/sys/vm/drop_caches 除非真需要
echo 3 > /proc/sys/vm/drop_caches 不会腾出磁盘空间,只释放内存中可回收的缓存(page cache、dentries、inodes)。它不是“清垃圾”,而是临时让 free -h 的 available 数字变好看。
- 必须先
sync,再执行:sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches',否则脏页没落盘,可能丢数据 -
free -h显示available还有几百 MB,就别动——那是内核在高效利用空闲内存 - 生产环境别加 cron 定时跑这个,频繁 drop 会增加 I/O 压力,反而拖慢后续读文件
真正难处理的从来不是缓存或日志本身,而是它们背后暴露的问题:比如某个服务持续申请内存却不释放、日志疯狂刷盘导致 dirty page 积压、或者 /proc/sys/vm/swappiness 设得过高引发不必要的 swap 活动。











