使用「系統移轉輔助程式」前該清理什麼
用「系統移轉輔助程式」把資料從一台 Mac 搬到另一台之前,先清掉新 Mac 反正也會自己重建的東西:App 快取、垃圾桶、Xcode 的 DerivedData,以及其他可以重新產生的建置產物。可能是唯一一份的東西則要留著:沒在別處確認過的 iPhone 和 iPad 備份,郵件、聊天、筆記資料庫、專案檔案夾這類 App 資料,以及任何你不確定是什麼的東西。最後再拿要搬的總量和新 Mac 的可用空間比一比。
理由很簡單。「系統移轉輔助程式」會把你的使用者帳號整個搬過去,而一個用了很久的帳號,大部分往往是第一天根本用不到的東西。它多拷貝 1 GB 快取,傳輸就多花 1 GB 的時間,新 Mac 也得多存 1 GB,或重新建立一遍。
「系統移轉輔助程式」會拷貝什麼
Apple 的系統移轉輔助程式說明說它會移轉文件、App、使用者帳號和設定,開始之前也會計算應用程式、使用者帳號、檔案、檔案夾和設定所使用的儲存空間。在新 Mac 上打開應用程式 › 工具程式 › 系統移轉輔助程式,選取從 Mac、「時光機」或啟動磁碟傳送的選項;在舊 Mac 上則選擇移轉至另一部 Mac 的選項。每個類別都有註記框,也可以展開類別,只挑選其中的特定項目。
它不會刪除舊 Mac 上的任何東西,所以在你確認沒問題之前,舊 Mac 一直是一條退路。
Apple 沒有公布帳號內哪些檔案夾會被略過。準備時就當作整個個人專屬檔案夾都會被帶過去,包括 ~/Library,大部分的快取、App 支援資料和裝置備份都放在這裡,這也正是帳號裡多年來悄悄變大的那一部分。
Apple 還有兩點和時間有關的提醒。大型傳輸可能需要幾個小時才能完成,而且可能會偶爾暫停;兩台 Mac 上的防毒、防火牆或 VPN 軟體,在傳輸完成前都應該先關閉。如果新 Mac 上已經有同名的帳號,系統會要你選擇取代它,或替搬過來的帳號重新命名,所以開始前就先決定好。
為什麼殘留會讓搬家更慢、新 Mac 更滿
浪費的空間大多來自三類資料:
| 是什麼 | 通常在哪裡 | 為什麼划不來 |
|---|---|---|
| App 和瀏覽器快取 | ~/Library/Caches,以及 Application Support 和 Containers 裡的快取檔案夾 |
逐位元組拷貝過去,新版的 App 往往還是會重新建立一遍 |
| 開發者建置產物 | ~/Library/Developer/Xcode/DerivedData,專案裡的 build、dist、target 和 .next 檔案夾 |
體積大、小檔案多,還和舊機器的工具鏈綁在一起 |
| 已移除 App 的殘留 | ~/Library/Application Support、~/Library/Containers、~/Library/Preferences |
你已經不用的 App 資料,被帶進一台乾淨的 Mac |
這些東西對新 Mac 都沒有幫助,而新 Mac 一開始使用,Library 裡就已經有這些殘留,和大多數人想從新機器得到的正好相反。
垃圾桶是第四種情況。裡面的檔案在清空之前都還在磁碟上,所以量帳號大小之前,先把它清空。
清理之前先量一下
在舊 Mac 上打開「蘋果」選單 › 系統設定 › 一般 › 儲存空間,先看 Apple 在儲存空間說明裡介紹的總覽。想具體看你的帳號,可以用幾行唯讀指令找出空間在哪裡:
du -sh ~ 2>/dev/null
du -sh ~/Library/Caches ~/Library/Developer ~/Library/Application\ Support/MobileSync 2>/dev/null
du 遇到受保護的檔案夾時可能會回報權限錯誤,那代表終端機沒有存取權,而不是檔案夾是空的。磁碟地圖比一串數字好讀,兩種方法見安全找出並移除 Mac 上的大型檔案。
可以先清掉的
下面這些會自己重建,或本來就是副本:
- 垃圾桶。 先翻過一遍,再清空。清不掉的話,見Mac 垃圾桶無法清空,怎麼處理。
- App 快取。 先結束 App,再只清它的快取檔案夾。怎麼分辨真正的快取和只是看起來像快取的資料,見Mac 哪些快取可以刪,哪些資料該保留?。
- Xcode 的 DerivedData 和模擬器殘留。 下一次建置時 Xcode 會重新產生 DerivedData。
~/Library/Developer底下還有哪些可以刪、哪些該留,見清理 Xcode 而不丟失發行產物。 - 能用一行指令重新產生的專案建置產物,例如可以從原始碼乾淨建置的專案裡的
build、dist、target或.next檔案夾。 - 已經用過的安裝檔,例如「下載項目」裡的舊
.dmg檔案,見Mac 安裝完 App,可以刪除 DMG 檔案嗎。
套件管理工具的快取(npm、pip、Homebrew 下載等)要自己判斷。它們可以重新下載,但新 Mac 上第一次安裝時就得全部重新抓一次。網路慢就留著;如果體積很大,而你本來就打算在新 Mac 上重新安裝工具,清掉也沒問題。每一種的做法見清除開發者快取而不破壞建置。
要留著,或刻意地搬
iPhone 和 iPad 備份。 它們放在 ~/Library/Application Support/MobileSync/Backup,可能非常大。一份備份可能是某支手機唯一的完整副本,所以不要只為了讓傳輸小一點就刪掉。如果想把它從舊 Mac 上移走,先確認裝置在 iCloud 裡有更新的備份,或你已經封存了需要的回復點。接著透過 Finder 的管理備份刪除整份備份,絕不要刪除備份裡的單一檔案。步驟見安全刪除舊的 iPhone 備份。
不是快取的 App 資料。 「郵件」和「訊息」的資料庫、聊天記錄、筆記和照片圖庫、密碼管理工具的保險庫、虛擬機器和專案檔案夾都是資料,就算它們放在 ~/Library 裡也一樣。如果某個 App 把資料存在伺服器上,在新 Mac 上登入也許就夠了,但刪除本機任何東西之前先確認這一點。
任何你認不出來的東西。 「系統移轉輔助程式」多拷貝一個不認識的檔案夾,代價是一些時間;刪掉它,代價可能是找不回來的東西。先留著,等到了新 Mac 上、知道自己實際在用什麼之後再決定。
檢查新 Mac 的空間
開始之前,在新 Mac 上打開系統設定 › 一般 › 儲存空間,記下可用空間。「系統移轉輔助程式」計算完傳輸內容後,會顯示每個類別需要多少儲存空間。如果總量接近新 Mac 的可用空間,就先回舊 Mac 再清一些,或取消勾選某個類別或項目,之後再手動拷貝。一台從第一天起儲存空間就快滿的 Mac,留給更新和快取的空間也更少。
如果你寧可從頭乾淨開始,也可以把新 Mac 設定成新的,只拷貝你的文件和需要的 App 資料。這要多做一些手動工作,但舊的快取和殘留一樣都不會帶過去。
Mole 在這件事裡的角色
Mole 的清理適合當作舊 Mac 上「先清掉」的那一步。它一次掃描 App 快取、開發工具和垃圾桶,每一列都讓你先檢查過才會移除:
- 開發工具會列出 Xcode DerivedData 的各個項目,以及一個預設勾選的已刪除專案的 Xcode 資料群組,對應專案檔案夾已經不存在的 DerivedData。它找到的專案建置檔案夾,例如
target、dist或.next,會以需要你自己勾選的列出現。 - npm 的
_cacache、Yarn、pnpm 和 Conda 套件這類套件快取會列出來,但預設不勾選,因為下一次安裝時還得重新下載。 - 垃圾桶會永久清空垃圾桶,所以先檢查一遍。
- iPhone 和 iPad 備份會出現在手動管理底下,附上最後備份日期,只供參考。「清理」永遠不會勾選或移除它們,這個決定留給你在 Finder 裡做。
它的分析視圖就是量空間那一步用的磁碟地圖。真正的移轉在 Apple 的「系統移轉輔助程式」裡進行,不在 Mole 裡。
搬完之後檢查
在新 Mac 上打開你最依賴的 App,確認它們的資料都到了:郵件、訊息、備忘錄、密碼管理工具,以及任何重要的專案。舊 Mac 先放著別動,它仍然是一份完整的副本。用新機器一陣子之後快取會再長回來,這很正常,不代表清理失敗了。
常見問題
「系統移轉輔助程式」會從一台 Mac 移轉哪些東西到另一台?
Apple 說它會移轉文件、App、使用者帳號和設定。你可以取消勾選整個類別,或展開類別挑選特定項目,而且它不會刪除舊 Mac 上的任何東西。
使用「系統移轉輔助程式」之前要先刪除快取嗎?
先清 App 快取、Xcode DerivedData 和垃圾桶是安全的,也能讓傳輸量變小,因為新 Mac 會在需要時重新建立快取。清除每個 App 的快取前先結束它,也不要把 App 資料或裝置備份當成快取。
「系統移轉輔助程式」會拷貝 iPhone 備份嗎?
Apple 沒有公布會排除哪些檔案夾,所以就當作整個個人專屬檔案夾都會搬過去,包括 ~/Library/Application Support/MobileSync/Backup。除非你已經確認別處有更新的備份,否則就留著它。
從一台 Mac 移轉資料到另一台要多久?
Apple 說大型傳輸可能需要幾個小時,而且可能會偶爾暫停。你能控制的是少搬幾 GB,所以先清掉快取和建置產物會有幫助。
新 Mac 空間不夠怎麼辦?
回舊 Mac 再清一些,或在「系統移轉輔助程式」裡取消勾選某些類別或項目,之後再拷貝。開始前,把「系統移轉輔助程式」算出的大小和系統設定 › 一般 › 儲存空間裡顯示的可用空間比一比。