# Mole 安全嗎：會刪什麼，什麼絕對不動

> Mole 會刪什麼、什麼絕對不動、刪掉的檔案去哪，以及這些答案在 Mac App 與命令列工具之間有何不同。

Published: 2026-08-17

Mole 以兩套程式發行，網路上多數安全說法其實只描述了其中一套。Mole for Mac 是 mole.fit 上販售的原生 App。`mo` 是 GitHub 上免費開源的命令列工具。兩者共用一份保護清單與一份日誌，但在真正刪除的那一刻行為並不相同，而這個差異，就是「Mole 對你打算用的方式安不安全」的完整答案。

簡短版：Mac App 會先完整列出候選項目，一般刪除會移到垃圾桶，所以誤刪可以還原。命令列會永久刪除快取檔案，用 `--dry-run` 代替還原。兩邊都會拒絕一組固定路徑，無論是誰要求刪它們。

## 刪掉的檔案去哪

在 Mac App 裡，一般刪除會進垃圾桶。這涵蓋快取清理、App 卸載，以及一併找到的殘留，包括需要管理員權限、經由 Mole helper 執行的刪除。它們會以原本的名稱待在垃圾桶，直到你清空它，放回去就是一般的 Finder 還原。

有兩件事不會進垃圾桶，而且都是刻意的。最佳化會直接刪除一小組具名的系統管理檔案：已儲存的 App 狀態、隔離事件資料庫、過期的 write-ahead journal、損壞的 LaunchAgent property list，以及空的 `.sfl` 檔。每一項都各自受年齡、大小或是否存在的條件把關，而且都是 macOS 會自行重建的檔案。另一個例外是命令列：`mo clean` 與 `mo purge` 依設計就是永久刪除。

正因這個設計，終端機工具的每個破壞性命令都附帶 `--dry-run`。在命令列裡，dry run 就是還原；在 App 裡，垃圾桶才是。

## Mole 拒絕刪除什麼

清理工具值不值得信任，取決於它不願做的事，所以拒絕清單寫的是具體路徑，而不是一句「會小心」的承諾。這些路徑在任何刪除執行前就被擋住，碰到它們的請求會被拒絕，而不是被裁短：

- **系統根目錄。** `/System`、`/usr`、`/bin`、`/sbin`，以及 `/private/var/folders`。
- **音訊外掛。** `/Library/Audio/Plug-Ins/Components`、`VST` 與 `VST3`，再加上 iZotope 與 LaserSoft 的支援目錄。它們看起來像閒置的 application support，但對任何會開啟引用它們的專案的人來說，都是承重的。
- **已下載的模型權重。** `~/.ollama/models`、`~/.lmstudio/models`、
  `~/.cache/huggingface`、`~/.cache/torch`、`~/.cache/whisper`、`~/.cache/tensorflow`，
  以及 `~/.cache/wandb`。路徑長得像快取，但它們是下載檔，有些還是數十 GB、要走慢速連線。
- **使用中的 Python 環境。** `~/.cache/pypoetry/virtualenvs` 會留下，Poetry 可重建的 `artifacts` 與 `cache` 子目錄仍可清理。
- **Apple Neural Engine 編譯模型庫。** 在消費端 App 執行時刪掉它，辨識功能會壞到下次重開機。
- **受保護的系統狀態。** 系統設定與控制中心組態、音訊服務、隱私資料庫、登入項目與背景工作註冊，以及「最近使用項目」選單背後的 shared file list。
- **Mole 自己的設定。** `~/.config/mole`，這樣一次清理就無法抹掉約束下一次清理的白名單。

白名單是同一件事由使用者控制的那一半。你在任一程式裡保護的路徑，兩邊都會遵守，因為兩邊都讀 `~/.config/mole/whitelist`。

## 審查步驟

Mac App 的掃描免費，不需授權、也沒有時限。每項工具都會掃描並完整列出結果；授權只在要對結果採取行動時才需要，每項破壞性工具在詢問前可執行兩次。因此你可以先把 Mole 提出的項目，對照自己對磁碟的了解，再決定要不要付費。

卸載會先出示一份含路徑、擁有者與大小的計畫，然後才移動任何東西。每條路徑會在刪除當下再次驗證，而不是只在掃描時驗證，所以掃描與你核准之間改了身分的檔案，不會靠一份過期的決定蒙混過關。

Mac App 也刻意比命令列更窄，而且方向一致。最清楚的例子是依賴目錄：`mo purge` 會刪 `node_modules`、`Pods`、`venv` 與 `vendor`，App 則全部略過，只提供本機編譯不必連網就能重建的項目。終端機裡出現 App 從未提供的類別，是預期行為，不是缺功能。

## 真正無法還原的是什麼

把這件事講清楚，比給安慰更重要。

快取清理本來就該是永久的。即便在 App 裡檔案會進垃圾桶，這項操作的重點仍是應用程式會自行重建它需要的東西；之後清空垃圾桶是收尾的正常步驟，清完之後檔案就沒了。命令列則直接跳過這個中間步驟。

`mo purge` 會永久刪除建置產物，所以它最該先做 dry run。上面列出的最佳化刪除也是立即生效。這些都無法在沒有備份的情況下還原，「我刪錯東西了」的通用答案仍然只有 Time Machine。

## 怎麼自己核對這些事

兩邊都會把每一次刪除連同路徑附加寫入 `~/Library/Logs/mole/operations.log`。這份檔案是實際發生過什麼的紀錄，由當時執行工作的那個前端寫入。

命令列以 GPL-3.0 開源，刪除邏輯可以直接讀。Mac App 以 Developer ID 簽名並經 Apple 公證，macOS 才能確認你下載的建置就是當初發布的那一份。兩邊都不傳送遙測資料。

## 你可能在別處讀到的說法

有三種描述流傳夠廣，值得更正，三者都來自把終端機工具和 App 當成同一套產品來讀。

**「它是沒有預覽、也沒有還原的終端機工具。」** 那描述的是 `mo clean`。
Mac App 是圖形化、先審查的工具，一般刪除會進垃圾桶。

**「Mole 是免費的。」** 命令列免費且開源。Mole for Mac 是一次 $19 的買斷，涵蓋兩台 Mac，含終身更新與 14 天退款。

**「命令列是 MIT 授權。」** 它是 GPL-3.0。

## 常見問題

### Mole 會把刪掉的檔案移到垃圾桶嗎？

在 Mac App 裡，一般的快取清理與 App 移除會進垃圾桶，包括需要管理員權限的刪除。例外是最佳化直接刪除、且 macOS 會自行重建的一小組系統管理檔案。免費命令列工具則永久刪除，改以 `--dry-run` 代替。

### Mole 會刪到 macOS 需要的東西嗎？

系統根目錄、受保護的系統狀態（例如隱私與登入項目資料庫）、音訊外掛、已下載的模型權重，以及使用中的 Python 環境，都會在任何刪除執行前被拒絕。App 也會在刪除當下再次驗證每條路徑，而不是只相信掃描結果。

### 免費命令列跟 Mac App 是同一個程式嗎？

不是。它們是各自獨立的實作，共用一套清理詞彙、一份白名單檔，以及一份日誌。App 是以 Swift 重寫的實作，不是包在命令列外面的包裝，而且對會刪什麼刻意更窄。

### Mole 需要「完整磁碟存取權」嗎，為什麼？

App 資料掃描受這項權限把關。沒有這項權限 Mole 仍會執行；它看到的比較少，也會明說，而不是把較小的數字當成全貌回報。

### 怎麼查看 Mole 刪了什麼？

讀 `~/Library/Logs/mole/operations.log`。兩邊都會寫入這份檔案，所以無論你用的是哪一套，都看得到。

---

Canonical HTML page: https://mole.fit/tw/blog/is-mole-safe
Blog index for agents: https://mole.fit/tw/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
