Apple 所說的系統資料
打開蘋果選單,然後依序選擇「系統設定」、「一般」、「儲存空間」。長條上每一段彩色部分都是有自己規則的類別:應用程式、文件、照片、郵件、訊息、iCloud 雲碟等。系統資料是剩下的部分。Apple 針對目前 macOS 的指南說,它「包含不屬於此處所列類別的檔案」,而且在那個視窗裡「無法管理此類別的內容」。
同一份指南也說明了這些檔案是什麼:「記錄檔、快取、VM 檔案和其他執行時期的系統資源」,以及「暫存檔、字體、App 支援檔案和外掛模組」。它還補充,這個類別「會隨 Mac 目前的狀態而改變大小」,其中的內容要「透過 Finder 或建立這些內容的第三方 App 來管理」。早期的 macOS 把同一個類別叫作「其他」。
所以系統資料不是一個資料夾,也沒有某一樣東西可以刪掉。它是 macOS 用減法算出的總數,所以即使你什麼都沒動,它也會變。 為什麼系統資料的數字總是對不上 一文詳細說明了這筆帳。
來源: Apple:在 Mac 上更改「儲存空間」設定 · Apple:釋放 Mac 上的儲存空間
三十秒自查
在測量任何東西之前,先做三件不花力氣的事。它們常常會讓長條自己變化,也能告訴你這一頁的其餘部分是否還有必要。
在「系統設定」、「一般」、「儲存空間」裡把指標停在灰色長條上,記下它的大小。這是之後用來比對的數字。
清空垃圾桶。裡面的東西仍然算作已用空間;順便也看一眼 Finder 的「下載項目」檔案夾。
重新開機。重新開機會刪掉交換檔,給 macOS 一個釋放可清除空間的機會,之後長條會重新計算。
同一畫面上的建議(儲存在 iCloud、移除已觀看的影片、自動清空垃圾桶)作用於文件、郵件、垃圾桶和影片。它們碰不到灰色長條。做完這三步系統資料仍是最大的一塊,就接著往下讀。
已經不屬於系統資料的內容
許多指南仍把 iPhone 備份和郵件列為常見元凶。在目前的 macOS 上,它們都有自己的一列,所以已經不能解釋一大段灰色了:
iPhone 和 iPad 備份,以及下載的 iOS 韌體,計入「iOS 檔案」。
郵件的訊息和附件計入「郵件」。
「訊息」裡的對話及其附件計入「訊息」。
macOS 本身也單獨佔一列,它位於一個你無法更改、已封存的唯讀宗卷上。 已封存的系統宗卷 一文說明了這要佔用多少空間。
如果系統資料是長條上最大的一段,答案幾乎總在你的使用者資料庫、某個開發工具的資料夾,或 macOS 為自己保留的檔案裡。
Finder、系統設定和命令列各自用不同的方式計算可用空間。刪除任何東西之前,先直接問磁碟:
diskutil info / | grep "Free Space"
df -h /System/Volumes/Data
如果 Finder 顯示的可用空間比這兩個指令多出不少,差額就是可清除空間:macOS 認為可以收回、只有在有東西需要時才會歸還的空間。 Mac 上的可清除空間,以及如何讓 macOS 真正釋放它 一文講的正是這種情況。
接著列出本機快照:
tmutil listlocalsnapshots /
以 com.apple.TimeMachine 開頭的名稱是 Time Machine 每小時的快照。以 com.apple.os.update 開頭的屬於 macOS 及其更新,交給 macOS 處理。
找出是什麼佔滿了它
這兩個指令會列出最大的資料夾,最大的排在最後。第一個需要輸入密碼,而且「終端機」需要「完整磁碟取用權限」(系統設定、隱私權與安全性),否則 macOS 會對它隱藏磁碟的一部分。
sudo du -xh -d 1 /System/Volumes/Data 2>/dev/null | sort -h | tail -20
du -xh -d 1 ~/Library 2>/dev/null | sort -h | tail -15
對排在最前面的資料夾,例如 ~/Library/Caches 或 ~/Library/Developer,再執行一次第二個指令,直到看到你認得的東西。然後到下面的表格裡查找。
不用終端機的方法
在 Finder 裡打開「前往」選單,按住 Option 鍵並選擇「資源庫」。按下 Command-J,勾選「計算所有大小」,再按大小為視窗排序。最大的幾個檔案夾和指令印出來的一樣,只有一個缺口:Finder 看不到快照、交換檔和 /private 下的隱藏檔案夾,這些仍然要靠指令列。
裡面有什麼,逐項來看
系統資料很大時通常由哪些東西組成、每一部分在哪裡,以及安全的刪除方法。Apple 沒有公布哪個資料夾歸入哪一列,所以先測量,再動手。
開發工具有各自的指南,列出了每個資料夾: Xcode 儲存空間 , Docker 磁碟空間 , AI 模型存放在哪裡 與 一張表列出所有開發快取 。
關於 Time Machine 快照
Apple 表示,Time Machine 大約每小時儲存一次快照,每個保留 24 小時,另外保留一份最近一次成功備份的快照,直到需要空間為止,並把快照佔用的空間算作可用空間。所以它們不應該讓長條上已使用的部分變大,但它們通常是 Finder 和 df 對可用空間看法不一的原因。當安裝程式或工具因空間不足無法啟動時再刪除它們,不要當成例行公事。如果 Time Machine 是你唯一的備份,最新的快照可能是你今天修改的某個檔案的唯一副本。
Time Machine 本機快照 與 APFS 快照是什麼 有更深入的說明。來源: Apple:關於 Time Machine 本機快照 。
不要動的東西
絕不
系統宗卷,以及系統自己的資料庫。前者 macOS 本來就拒絕修改,後者保存著使用者帳號和統一記錄等內容。
/System
/private/var/db
你的鑰匙圈,裡面存著你的密碼:
~/Library/Keychains
另外不要動交換檔、正在開啟的 App 容器裡的任何內容,以及郵件和照片的圖庫,這些只應該由郵件和照片來修改。
建議先確認的
Xcode 的 Archives 保存著你發佈過的建置,以及讀取它們當機報告所需的符號,沒有任何東西能重建它們。你自己建立或微調的模型無法再次下載。Docker 宗卷裡可能有資料庫。
清理類 App 在你的使用者資料庫裡工作,而 macOS 並不保護那裡。粗心的清理正是在那裡造成損害,所以無論用什麼工具,都要確保每一項刪除前看得到、刪除後找得回。
為什麼它又會變大
裡面大部分是快取,而快取一用就會再滿。DerivedData 下次建置就回來了。Time Machine 一小時內會再建立一個快照。下次記憶體不足時交換檔又會變大。Homebrew 下次升級時會重新下載。這些都不是故障,也正因如此,「清除系統資料」永遠不會一勞永逸。
有用的做法是知道你自己的 Mac 上哪兩三個資料夾最大,每隔幾個月檢查一次,而不是一次全部清空。儲存空間長條看起來滿了、但仍有可清除空間可以歸還的 Mac,維持原樣也可能沒問題。 交換檔與睡眠映像檔 一文講的是取決於記憶體而不是磁碟的那兩個檔案。
Bytesweep 能幫上忙的地方
本頁的所有操作都可以免費用「終端機」和 Finder 完成。Bytesweep 省去的是指令和猜測。
「儲存空間」掃描會測量磁碟上的資料夾,包括資料庫這類隱藏資料夾,讓你把那段灰色看成一個個有名稱、有大小的資料夾。
「清理」會列出快取、記錄檔、暫存檔和開發資料及其位置,並為每一項評等:安全、需先檢查或保留。只有安全的項目會被預先勾選。
它清理的內容會先移到同一顆磁碟上的還原點,所以 7 天內都能放回去。
刪除 Time Machine 本機快照、清理 Homebrew 和 Docker 都交給 macOS 和這些工具自己的指令執行,因此無法復原。Bytesweep 會在你執行之前標示出來。
常見問題
我可以直接刪掉系統資料嗎? 不能整個刪除。系統資料是 macOS 在儲存空間長條上畫出的一個總數,背後並沒有單獨一個資料夾。你刪除的是其中的一件件東西,其中有些是 App 需要的檔案。所以答案永遠是先看清楚,而不是一鍵清空。
系統資料和「其他」是同一回事嗎? 是的。更早的 macOS 把同一個剩餘類別叫作「其他」。之後有些內容有了自己的類別,例如 iPhone 備份歸入「iOS 檔案」。
為什麼我的 Mac 上系統資料這麼大? 用來做開發的 Mac 上,通常是 Xcode、模擬器、Docker 和套件快取。在其他 Mac 上,更常見的是 App 快取、App 從不清理的資料,以及已刪除 App 的殘留。「找出是什麼佔滿了它」裡的兩個指令會告訴你自己的 Mac 屬於哪種情況。
多大的系統資料算正常?什麼時候該停手? Apple 沒有公布數字,合適的大小取決於這台 Mac 用來做什麼。裝了 Xcode、Docker 或本機 AI 模型的 Mac,會比只收郵件和上網的 Mac 多出幾十 GB,這不是故障。有用的標準不是總量,而是裡面那些大檔案夾是否屬於你認識並且還在用的東西。是,就到此為止。如果最大的那個屬於幾個月前已刪除的工具,那就是該清理的那個。
為什麼它自己變小了? Time Machine 快照 24 小時後過期,有東西需要空間時 macOS 會歸還可清除空間,重新開機會刪除交換檔。而且類別會在背景重新計算,所以即使沒有任何檔案變動,長條也可能變化。
重新安裝 macOS 能解決嗎? 不會。重新安裝只替換系統宗卷,資料宗卷原封不動,而系統資料幾乎都在資料宗卷上。只有清除 Mac 從頭開始才能清空它,之後同樣的 App 還會重新產生同樣的快取。
可清除空間真的是可用的嗎? 大部分是。有東西需要空間時 macOS 會釋放它,所以即使 Finder 說沒有空間,大檔案拷貝通常也能成功。但如果工具啟動前先檢查可用空間並拒絕啟動,它就幫不上忙,而想立即釋放它,唯一的辦法是自己刪除快照。