我的 Mac 說磁碟已滿,Finder 卻顯示還有空間
安裝程式或更新告訴你空間不足,Finder 卻說你還有很多。兩邊說的都是實話:它們讀的是不同的數字。
簡單說:macOS 會把可清除空間(本機 Time Machine 快照、保留在本機供離線使用的 iCloud 檔案、某些快取)算成可用空間,因為需要時它可以把這些移除。有些 App 只看現在真正空閒的空間。用 df -h / 查看實際的空閒空間;要把可清除空間變成空閒空間,請精簡本機快照並重新開機。
為什麼會有兩個數字?
App 詢問空間時,macOS 會給它兩個答案:
- 空閒:目前沒有任何檔案使用的空間。
- 可用:空閒空間加上可清除空間;當檔案需要空間時,macOS 會自行移除可清除的部分。
在撰寫這篇文章的 Mac 上,同一個磁碟在同一時間有 154.8 GB 空閒、368.7 GB 可用。Finder 顯示的是比較大的那種數字;先檢查空閒空間的安裝程式,可能只看到比較小的那個。
怎麼查看實際的空閒空間?
df -h /
diskutil info / | grep "Container Free Space"
兩個指令都會顯示目前真正空閒的空間,不含可清除空間。df 使用二進位單位(Gi),所以同樣的位元組數,它顯示的數字看起來會比 Finder 小。
什麼是可清除空間?
- 本機 Time Machine 快照:沒有連接備份磁碟時保留在 Mac 上。用
tmutil listlocalsnapshots /列出來。 - 「iCloud 雲碟」和「照片」的檔案:開啟「最佳化 Mac 儲存空間」時,這些檔案同時也存在 iCloud 中。
- 某些快取:macOS 知道它可以重建的那些。
怎麼把可清除空間變成空閒空間?
- 連接 Time Machine 磁碟並讓備份完成,或用
tmutil thinlocalsnapshots / 999999999999 4移除本機快照。 - 將 Mac 重新開機:暫存檔和交換空間都會被清掉。
- 再執行一次
df -h /。如果空閒空間還是太小,就移除一些不再需要的東西:「系統設定」›「一般」›「儲存空間」會列出最大的幾個類別。
為什麼安裝程式還是說空間不足?
macOS 更新需要空間來下載,也需要空間來準備安裝,所以需要的比顯示的下載大小更多。請騰出空間,直到 df 顯示的空閒數字明顯夠大為止,而不是只看可用的數字。