Mac 提示“磁盘空间不足”:应该先删什么
Mac 提示磁盘空间不足时应该先删什么:这里按每一步实际能腾出多少空间排序,帮你最快拿回足够空间,把手头的事情做完。
更多同类指南目前仅提供英文版本。 查看全部文章
这是这个问题里没时间读长篇解释的那个版本——现在就有东西卡住了,你需要在接下来五分钟内把空间拿回来。下面这个顺序确实管用,先做最快、收益最大的。
首先,看看情况有多糟
df -h /
Avail 这一列就是你能用的余量。整个宗卷的可用空间低于大约 10% 时,macOS
本身就会开始不舒服——如果你已经接近这条线,按下面的顺序做,应该能很快脱离险境。
第一步:把废纸篓真正清空
“我明明删了东西,怎么还是没有空间”——这是最常见的原因:删除一个文件只是把它移进废纸篓,在废纸篓真正清空之前,它依然算在你的已用空间里:
# Empty Trash from the shell, including large files that macOS's own
# "Empty Trash" sometimes prompts extra confirmation for
rm -rf ~/.Trash/*
如果你特意删了一个大文件来腾空间,但之后没清空废纸篓,光这一步往往就能解决整个问题。
第二步:按大小排序看 Downloads 文件夹
第二常见的元凶——安装程序、.dmg 文件,以及用过一次就被彻底遗忘的大文件下载:
du -sh ~/Downloads/* 2>/dev/null | sort -hr | head -20
.dmg 和 .pkg
安装文件是这里的经典元凶——你安装完应用之后,磁盘映像就一直留在那儿,而应用已经装好了,它完全是多余的。任何你已经装好的软件的安装包,都可以放心删除。
第三步:本地 Time Machine 快照
如果你用的是笔记本,macOS 很可能已经在做你不知道的每小时本地快照,占用着空间——这可能是 10–40 GB,不到一分钟就能拿回来:
tmutil thinlocalsnapshots / 10000000000 4
想了解细节,可以看看这条命令具体做了什么、什么时候安全的完整说明——简短版本是:只要本地快照不是你唯一的备份,这样做就是安全的,而对大多数人来说确实不是。
第四步:整体清空 ~/Library/Caches
如果第 1–3 步还没能让你脱离险境,接下来收益最高、风险最低的一步,就是清空苹果自己指定专门存放这类一次性数据的位置:
rm -rf ~/Library/Caches/*
关于为什么这样做安全、以及少数值得了解的例外情况,完整说明在这个文件夹的专门指南里——但如果是紧急情况,这条命令可以先直接跑,不用先读完那篇再动手。
第五步:如果你是开发者,看这三大项
只要这台机器做过一定量的 iOS、Docker 或 Node 开发,光这三项加起来常常就有 50–150 GB:
rm -rf ~/Library/Developer/Xcode/DerivedData/*
docker system prune -a --volumes # only if you have Docker installed and running
find ~ -name "node_modules" -type d -prune -exec du -sh {} \; 2>/dev/null | sort -hr | head -10
每一项都有专门的详细指南: DerivedData、 Docker、 node_modules。
如果这些都还不够
到这一步,剩下的空间几乎肯定要么在你的实际文件里——Photos 资源库、Music、Documents——这篇文章特意不去动它们,因为那是你的数据,不是缓存,该怎么处理应该是你深思熟虑之后的决定,而不是在时间压力下匆忙做出的。要么就在“系统数据”里,苹果的这个大杂烩分类在另一篇指南里有详细讲解,需要的调查比一次五分钟的应急处理能覆盖的要多。
为什么这个问题总是反复出现
上面这五步没有一个是一次性解决方案——每一项都会重新填满。缓存会随着你使用应用重新生成,DerivedData 一开始构建就会重新填满,Time Machine 快照删掉之后,每小时又会重新开始。应急修复和真正的解决办法是两码事:这篇文章能让你今天解除阻塞;DevCruft 则是一款正在开发中、面向开发者的免费 Mac 应用,目标是让你下个月不用再翻出这篇文章——设计上它会持续把这同样五个分类展示给你看,在它们中的任何一个严重到“卡住一次导出”之前。想在它推出时收到通知,可以加入候补名单。