Mole 安全嗎:會刪什麼,什麼絕對不動
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。兩邊都會寫入這份檔案,所以無論你用的是哪一套,都看得到。