是 Ray 不是 Array

整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ

Advertisement
2026-02-22 雜談

macOS 時光機備份超久?教你一招加速!

macOS 時光機備份超久

前言

macOS 的時光機(Time Machine)是一個非常方便的備份工具,但有時候備份過程可能會變得非常緩慢,尤其是你過一段時間之後才進行時光機備份會更明顯,所以這一篇就來記錄一下該如何以最快的方式來進行時光機備份,讓你不再為了備份而苦惱!

事發原因

早期我電腦剛到手的時候,基本上我每週都會跑一次時光機備份,確保避免資料遺失的風險,但後來因為工作忙碌,導致我有一段時間沒有進行時光機備份,當我再次啟動時光機備份時,發現備份過程非常緩慢,甚至有時候會卡在某個階段不動,這讓我非常困擾。

時光機備份緩慢

上面的圖你可以看到時光機正在找尋有變動的檔案。

對於一名開發者來講,其實電腦的變動頻率非常的高,尤其是當你在開發過程中會不斷地修改、編譯、測試程式碼,這些動作都會產生大量的檔案變動,導致時光機在備份時需要花費更多的時間來找尋這些變動的檔案。

解決方法

解決方式非常簡單,但是要先做一些事情,首先我是使用 iTerm 操作我的電腦,所以必須要先到設定 -> 隱私權與安全性 -> 完全取用硬碟

完全取用硬碟

接著找到 iTerm 將它啟用

iTerm 完全取用硬碟

當然這邊一樣會跳出要求你輸入密碼的視窗,輸入你的密碼後就完成了。

輸入密碼

然後由於我的開發專案大多都是再 /Users/rayxu/GitHub 這個路徑底下,所以我就直接在 iTerm 輸入以下指令:

1
sudo find ~/GitHub -name "node_modules" -type d -prune -exec tmutil addexclusion -p {} +

加入排除清單

輸入完畢後,你也可以在時光機的偏好設定裡面看到剛剛加入的排除清單了。

排除清單

這邊也解釋拆解一下指令:

  • find ~/GitHub:使用 find 搜尋工具,並指定從「使用者主目錄下的 GitHub 資料夾」開始搜尋。
  • -name "node_modules":尋找名稱完全符合 "node_modules" 的目標。
  • -type d:限定找到的目標必須是「資料夾 (directory)」,排除掉剛好同名的單一檔案。
  • -prune:這是一個效能關鍵字!它的意思是「一旦找到符合的資料夾,就不要再鑽進去搜尋了」。這能避免 find 浪費時間去掃描 node_modules 底下那幾萬個小檔案,大幅提升執行速度。
  • -exec ... {} +:把前面找到的所有結果,交給後面的指令去執行。{} 代表找到的資料夾路徑,+ 表示把所有路徑打包起來「一次性」餵給後面的指令,效率比找到一個就執行一次高很多。
  • tmutil addexclusion -p:這是 macOS 專屬的 Time Machine 管理指令。addexclusion 代表加入排除名單。加入 -p 參數非常重要,它代表「認路徑不認檔案」,這樣一來,即使你未來把某個專案的 node_modules 刪掉又重新安裝,這個排除規則依然會持續生效。

執行完這個指令後,Time Machine 就會自動把 node_modules 這個資料夾加入到備份的排除清單中,這樣一來,當你下次進行 Time Machine 備份時,就不會再花時間去掃描 node_modules 裡面那些大量的小檔案了,備份速度自然就會大幅提升!

那為什麼我要特別忽略 node_modules 呢?因為在前端開發中,node_modules 資料夾通常會包含成千上萬個小檔案,這些檔案的變動頻率非常高,而且它們通常都是由 package.jsonpackage-lock.json 這兩個檔案所管理的依賴關係所產生的,所以只要備份這兩個檔案就足夠了,沒必要把整個 node_modules 都備份起來。

當然,如果你有其他類似的資料夾也不需要備份的話,也可以使用同樣的方法把它們加入到 Time Machine 的排除清單中,這樣就能讓你的備份過程更加順暢了哩~

參考文獻

整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ

Advertisement

你的支持會直接轉換成更多技術筆記

如果我的筆記讓你少踩一個坑、節省 Debug 的時間,
也許你可以請我喝杯咖啡,讓我繼續當個不是 Array 的 Ray ☕

buymeacoffee | line | portaly

Terminal

分享這篇文章

留言

© 2026 Ray. All rights reserved.

Powered by Ray Theme