如何在 macOS 上无需付费工具和订阅即可清理磁盘
熟悉的场景:你打开 macOS 设置中的"存储"标签,里面塞满了"系统数据"类别,占用了数 GB 的空间。系统并不会真正解释这些空间去哪了。你开始寻找解决方案,搜索引擎立刻推荐各种界面漂亮的一体化工具,年度订阅费用高达四十美元。
为每月删除一次缓存而付费通常不是开发者想要的。我为了寻找轻量级替代方案,找到了开发者 Haralambi Dobrev (hkdobrev) 的 cleanmac 项目。这是一个普通的 bash 脚本,默默清理系统中的垃圾文件。
为什么需要单独的清理脚本
大多数开发者的电脑上都有大量工具。Xcode 在 DerivedData 文件夹中积累了几十 GB 的数据。Docker 存储着旧镜像层。npm 和 yarn 这样的包管理器会缓存多年。
手动记住所有路径和命令非常耗时。第三方 GUI 应用经常在后台运行、发送通知并消耗内存。cleanmac 脚本直接解决了这个问题:你在终端运行它,它会遍历已知目录,释放空间,然后退出。
需要说明的是:作者最近归档了这个仓库,推荐查看更新的 Mole 工具。但 cleanmac.sh 写得非常透明,很容易提取代码片段用于自己的 dotfiles 或作为现成的配方使用。
cleanmac 到底清理什么
脚本里没有什么魔法——只是清理特定工作相关垃圾的命令。
脚本检查四个主要的垃圾组:
- 开发缓存:DerivedData 文件夹和 Xcode 归档、npm 和 yarn 缓存。
- 容器:未使用的层和已停止的 Docker 容器。
- 系统垃圾:应用日志、Safari 缓存、6 中的用户缓存和垃圾箱内容。
- 内存:通过系统工具调用 7 重置磁盘缓存。
系统缓存删除可以按时间配置,这很方便。默认情况下,脚本会保留最近 7 天内创建的文件。如果不想触碰新缓存,可以通过参数传递不同的时间间隔。
如何运行脚本
安装只需克隆仓库:
0在删除数 GB 的文件之前,明智的做法是预览脚本将要删除的内容。为此提供了安全模式:
18 标志会列出路径而不实际删除数据。如果列表符合你的需求,运行清理:
2如果需要删除系统日志或执行内存重置,脚本会请求超级用户权限。
内部结构及可学习之处
对于编写自己自动化脚本的人来说,cleanmac 作为清晰 bash 代码的示例很有价值。它有结构良好的参数处理、检查已安装工具的功能(例如检查系统是否安装了 Docker),以及输出格式化。
如果你不需要完整功能,可以只提取需要的函数。例如,清理 DerivedData 的代码行:
3或者 Docker 镜像清理调用:
4将这些命令添加到 zshrc 的别名中通常比安装带有不透明遥测的闭源软件更快、更安全。
谁会发现这有用
这个项目适合以下人群:
- 使用 256 或 512 GB 小容量 SSD 的 Mac 工作。
- 积极进行 iOS 或 Web 开发,缓存会在几周内填满磁盘。
- 更喜欢开源 shell 脚本而不是闭源付费工具。
- 想查看现成命令用于自己的系统维护脚本。
即使仓库已被归档,cleanmac 完美展示了处理日常任务的简单方法:有时三十行 Bash 代码就足够了,无需使用重量级程序。如果你需要一个在终端中具有交互界面的活跃维护工具,可以查看作者提到的 Mole。对于快速一次性清理,cleanmac 也能完成任务。
相关项目