许多人在切换操作系统后,会寻找 CCleaner 的替代品,无论是从 Windows 迁移到 Linux 还是 macOS。这种习惯可以理解。多年来,清理类应用在 Windows 上一直是必备品。但 Linux 和 macOS 的工作方式不同,CCleaner 解决的问题在这两个平台上根本不存在。

Linux 的工作方式不同。大多数 Linux 发行版已经内置了清理工具。

本文将解释为什么 CCleaner 在 Linux 和 macOS 上毫无用处,以及你实际需要的 5 个命令来保持 Linux 系统清洁,同时给出 macOS 用户应该怎么做。

为什么 Linux 不需要 CCleaner

CCleaner 解决的是 Linux 上不存在的问题。它在 Windows 上流行是因为 Windows 系统会积累大量临时文件、安装程序残留和注册表项。

Linux 的设计不同。

大多数软件通过包管理器安装,例如 APTDNFPacmanZypper。这些工具已经跟踪了已安装的文件和依赖关系。Linux 也没有像 Windows 那样的中央注册表。

但这并不意味着 Linux 永远保持完美清洁。

软件包缓存会增长。旧日志会留在磁盘上。容器化应用会留下未使用的运行时。开发者经常积累 Docker 镜像和构建产物。

不过,这些问题都有直接的解决方案。你不需要一个常驻后台的“优化器”应用。

下面这五个安全命令能给你比任何清理工具更多的控制权和更好的效果。

macOS 用户怎么办?

本文中的命令是 Linux 专用的,在 Mac 上无法运行。macOS 架构不同,没有暴露 Linux 那样简单的底层包管理机制。

与 Linux 不同,macOS 没有提供简单的终端命令来安全处理所有这些清理工作。Apple 锁定了许多系统目录,手动清理可能弊大于利。

更可靠的方法是使用专为 macOS 构建的专用工具。这些工具了解 Mac 的文件结构,你可以在此处查看适用于 Mac 用户的最佳 CCleaner 替代品的实用概述。它们知道哪些文件可以安全删除,并在不影响系统稳定性的情况下处理清理过程。

对于 Linux 用户,下面的五个命令就是你所需要的全部。

警告: 请注意,清理命令如果使用不当可能会删除有用的数据。

命令 1:清理软件包下载缓存

包管理器在安装软件之前会下载安装文件。这些文件存放在缓存文件夹中。安装完成后,它们就不再需要了。

Arch Linux、EndeavourOS 和 Manjaro:

sudo pacman -Sc

Debian、Ubuntu、Mint、Pop!_OS:

sudo apt clean

Fedora、RHEL、AlmaLinux 和 Rocky Linux:

sudo dnf clean all

作用: 删除 Linux 为可能重新安装而保留的已下载软件包文件。这些文件占用空间但没有持续用途。

这不是: 不会卸载软件。只删除安装程序。你的应用仍然正常工作。

你可以每月运行一次此命令。它非常安全。

命令 2:删除未使用的依赖

当你安装一个应用时,Linux 会自动拉入它所需的其他较小软件包。这些支持包称为依赖。删除主应用后,依赖通常仍然保留。

Arch Linux、EndeavourOS 和 Manjaro:

sudo pacman -Rns $(pacman -Qdtq) 2>/dev/null

Debian、Ubuntu、Mint、Pop!_OS:

sudo apt autoremove

Fedora、RHEL、AlmaLinux 和 Rocky Linux:

sudo dnf autoremove

作用: 查找作为依赖安装但不再需要的软件包,并安全删除它们。

这不是: 不会删除你手动安装的应用。永远不会触及你的个人文件。

这是 Linux 上最有用的清理命令。许多用户第一次运行就能释放几个 GB 空间。

命令 3:限制系统日志

Linux 会详细记录系统所做的一切。这对故障排除非常有用。但日志会无限制增长。一个被忽视的系统可能存储数 GB 你永远不会读取的日志文件。

sudo journalctl --vacuum-size=200M

作用: 将系统日志保持在 200 兆字节以下。旧日志会自动删除。

替代命令(按特定时间段保留日志):

sudo journalctl --vacuum-time=7d

这不是: 不会删除你的应用数据或个人文件。只修剪系统诊断日志。

每几个月运行一次。大多数用户释放的空间很小,但在服务器和长期运行的系统上,效果显著。

命令 4:删除未使用的 Flatpak 和 Snap 软件包

现代 Linux 发行版越来越多地使用容器化应用。FlatpakSnap 是两种常见格式。它们自包含且易于管理,但也会留下未使用的运行时。

Flatpak(Fedora、Linux Mint 等):

flatpak uninstall --unused

Snap(Ubuntu 及其衍生版):

sudo snap set system refresh.retain=2

Flatpak 命令会删除没有已安装应用需要的运行时版本。

Snap 命令限制 Snap 保留的旧版本数量。默认是 3。改为 2 可以节省空间,同时保留安全备份。

这不是: 不会删除你已安装的 Flatpak 或 Snap 应用。只清理支持文件。

每几个月运行一次 Flatpak 命令。设置 Snap 保留策略一次即可。

推荐阅读: 如何删除未使用的 Flatpak 应用以释放 Linux 磁盘空间

命令 5:查看实际占用空间的内容

之前的所有命令都删除特定类别的文件。但有时你只需要知道磁盘空间去哪了。Linux 给你完全的可见性。

sudo ncdu /

ncdu 工具提供了一个简单的交互式磁盘使用视图。

你可以快速找到:

  • 大的日志目录
  • Docker 镜像
  • 虚拟机文件
  • 旧备份
  • 被遗忘的下载

这种方法比随机清理命令更有效。

如果未安装 ncdu

sudo pacman -S ncdu     # Arch
sudo apt install ncdu   # Debian/Ubuntu
sudo dnf install ncdu   # Fedora

作用: 扫描你的文件系统并显示按大小排序的交互式文件夹列表。你可以用箭头键导航。可以直接从界面删除文件。

这不是: 自动清理器。它不会猜测你想删除什么。它展示事实,由你决定。

当这些命令不够用时

这五个命令涵盖了日常维护。它们对初学者安全。它们能解决 Linux 上 95% 的“磁盘已满”问题。

但它们不能替代理解你的系统。这些命令不会:

  • 神奇地加速 Linux
  • 提高 CPU 性能
  • 增加 RAM
  • 优化游戏
  • 自动调优内核

小心那些承诺通过“清理 Linux”带来显著性能提升的文章。

如果你在使用所有五个命令后仍然空间不足,那说明有其他问题。常见原因包括:

  • 家目录中的大型媒体文件
  • 虚拟机镜像或 Docker 容器
  • 数据库文件(PostgreSQL、MySQL、SQLite)
  • 开发构建产物(Node.js 的 node_modules、Python 的 venv、Rust 的 target
  • 邮件缓存(Thunderbird、Evolution)

对于这些,ncdu(命令 5)是你最好的朋友。它精确显示空间去哪了。

常见错误

1. 不必要地以 root 身份运行命令。

大多数这些命令仅在系统级更改时需要 sudo。命令 3(journalctl)和命令 5(在系统文件夹上运行 ncdu)需要 sudo。命令 4(Flatpak)不需要。不必要地使用 sudo 会带来风险。

2. 用 rm -rf 手动删除 ~/.cache

有些指南可能建议这样做。不要这样做。应用期望它们的缓存文件夹存在。用通配符删除它们可能会破坏正在运行的应用。上面的五个命令是安全的,因为它们使用了正确的删除方法。

3. 在不了解会删除什么的情况下运行 autoremove

先运行 sudo apt autoremove --dry-run(Debian/Ubuntu)。它会显示将要删除的内容,而不实际删除。

4. 认为清理越多越好。

Linux 不需要持续清理。每周运行这些命令并不比每季度运行一次更有好处。过度清理解决不了任何问题。

验证

每个命令都会输出显示它删除了什么。你可以验证前后的磁盘空间。

查看可用磁盘空间:

sudo df -h

在运行命令之前运行一次,之后再次运行。差值就是你释放的空间。

对于更直观的方法,在前后运行 ncdu /。该工具会精确显示哪些文件夹大小发生了变化。

大多数用户第一次运行所有五个命令时,会释放 1GB 到 5GB 的空间。在从未清理过日志的旧系统上,这个数字可能更高。

应该使用 GUI 清理工具吗?

有时可以。

BleachBit 这样的工具为桌面用户提供了图形化的清理选项。它们可以帮助初学者可视化磁盘使用情况并快速删除浏览器缓存。

不过,命令行工具仍然更透明。你能确切看到系统更改了什么。

结论

Linux 和 macOS 都不需要 CCleaner。两个操作系统都有自己的清理逻辑:Linux 通过包管理器和终端命令,macOS 通过专用工具。

上面的五个命令安全可靠。运行它们不到两分钟。它们免费且适用于所有主要 Linux 发行版。

在以下情况下使用这些命令:

  • 磁盘空间开始减少
  • 日志变得太大
  • 软件包缓存不必要地增长
  • 旧依赖积累

不要在生产系统或你不完全理解的机器上盲目使用它们。

偶尔运行一次。当出现问题时使用 ncdu。祝你好运!

推荐阅读: