我的 Mac 是 128G 的,这么低的磁盘空间很容易爆满,如果只是通过 finder 删除一些文件,是很难真正的清理空间的。我采用的方式如下:
sudo du -sh ./* | sort -rh | head -10
这个命令会统计当前目录下前 10 个占用最大的文件系统,并会显示他们具体占用了多少 G 的磁盘空间;sudo rm -rf path/
,真正的彻底清理空间。当我清理完磁盘空间后,我使用df -h
查看了一下各磁盘空间的具体占用,结果
可以看到,各磁盘分区加起来都超过 128G 了,并且各个磁盘分区的占用和可使用也计算不对,最后查了一下 Mac 的磁盘分区技术是采用了 APFS 文件系统中的一项技术 - APFS Volume Groups 。 APFS Volume Groups 允许在一个物理磁盘上创建多个逻辑磁盘分区,这些逻辑分区之间可以共享空间池。也就是说,每个分区显示的“大小”是该分区可以扩展到的最大容量,而不是其已实际占用的物理空间大小。
只有当文件系统使用空间时,才会从共享空间池中动态分配物理存储空间。
所以在这里,虽然各分区的逻辑“大小”相加超过了 128G,但它们共享一个约 128G 的物理存储池,实际 occupied 物理空间还是小于等于总的物理磁盘空间。
这种机制可以提高磁盘空间的利用率和灵活性。所以不用担心各分区显示大小的总和超过了物理磁盘空间,这在 APFS 的 Volume Groups 下是正常的。