前言

工作用的 MacBook,越来越多遇到磁盘不足,无法升级的问题,所以翻译此文,也希望能帮到大家。

原文见:在路上的博客

原文:How to Free Disk Space on MacBook used for Development

在 MacBook 上 安装或更新一个应用程序有时会出奇的困难,由于磁盘空间不足。本文,我将描述几种方法,用于在 MacBook 上 快速、安全的清理大量存储空间。

近来,我已在我的 MacBook Pro 上实操了分析和清理磁盘空间。结果,我已设法释放 10GB 磁盘空间,并最终升级 XCode 到最新版本。

分析磁盘使用情况

分析磁盘空间占用较多的最好方法是使用Disk Inventory X ,支持 Mac OS 10.13+ (including 10.15 Catalina)

命令行安装:

brew install --cask disk-inventory-x

不会命令行的朋友,下载安装

安装后,启动台会显示:

碰到这种情况的朋友 ,系统偏好设置 -> 安全性与隐私 -> 通用 -> 仍要打开。

选择 Macintosh HD 进行分析,分析较慢,需要稍等片刻:

该应用有清晰的界面展示磁盘使用情况:

下面,让我们来讨论减少磁盘使用量的小效果。

删除冗余应用程序缓存

在我的电脑上,大量非必要数据存放在: ~/Library/Caches。我意识到有几百兆跟一年多没用过的 Yarn 有关。显然,很多应用程序都希望缓存数据,而忽略了随后的清理工作。

你可以使用以下命令彻底清除缓存:

cd ~/Library/Caches
rm -rf *

或者,你也可以选择要删除缓存的文件。我已经定期清理总缓存几个月了。除了暂时的系统速度变慢之外,没发现其他任何问题。

很显然,过段时间缓存会重新产生。但是即使经过更长时间,也不会有原来那么大。清理 30 多 GB 缓存后,使用一周电脑缓存也只增加到 2GB。

删除旧的日志文件

我平常使用 Ruby on Rails 最多。使用 Disk Inventory X,我发现运行本地测试会持续写 log 到log/test.log

可以想象到其他应用也在以同样方式占用磁盘。Disk Inventory X 对于识别和修复此类问题非常友好。

减少 Docker 使用磁盘空间

Docker 以侵占磁盘空间著名。可以通过以下命令查看 Docker 占用了多少磁盘空间:

docker system df

TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          17        4         2.115GB   1.577GB (74%)
Containers      6         1         138.4MB   0B (0%)
Local Volumes   19        5         1.564GB   1.347GB (86%)
Build Cache     0         0         0B        0B

运行docker images查看哪些镜像占用空间最大:

docker images

REPOSITORY     TAG          IMAGE ID      CREATED        SIZE
pihole/pihole  latest       4642d275ab73  4 months ago   296MB
postgres       11.8-alpine  a7f73db0b977  6 months ago   156MB
postgres       12.3-alpine  17150f4321a3  6 months ago   157MB
postgres       9.6-alpine   45f463e53bc1  6 months ago   36.1MB
alpine         latest       a24bb4013296  7 months ago   5.57MB
postgres       12.2-alpine  ae192c4d3ada  8 months ago   152MB
postgres       9.6.17       529a7b20fb73  8 months ago   200MB
postgres       11.6-alpine  89ae06c2ad76  11 months ago  152MB

在我的电脑上,我有好几个版本的 postgres 镜像,每个都占用大量空间。可以用以下命令移除 Docker 镜像:

docker rmi -f IMAGE_ID

以我的经验来看,镜像通常占用大部分磁盘空间。但是,如果您想进行更全面的清理,包括 Docker 容器,网络和缓存,请使用以下命令:

docker system prune

我之所以选择全面清理,是因为所有的本地 Docker 项目都可以轻松的用 seed data 创建。
注意:在删除容器或卷之前,请确保仔细检查是否没有难以恢复的数据。

查看Docker 文档 以了解有关其他修剪命令的更多信息。

最后

希望那些建议会帮助你轻松释放大量磁盘空间。良好的做法是用 Disk Inventory X 定期检查是否有不必要的磁盘占用,这将有助于帮助你保持良好的磁盘使用。


↙↙↙阅读原文可查看相关链接,并与作者交流