產品說明
rmlint 是一款以 C 語言撰寫、專注於速度與準確性的檔案系統清理工具。它的主要功能是尋找並移除系統中的重複檔案(Duplicate files),但功能遠不止於此。它還能偵測空目錄、損壞的符號連結(Broken symlinks)以及未剝離的二進位檔案(Non-stripped binaries)。
與其他去重工具(如 fdupes)相比,rmlint 的運算速度極快,因為它利用了多執行緒平行處理並優化了雜湊演算法。更重要的是,它預設「不會」主動刪除任何檔案,而是生成一個 shell 腳本 (rmlint.sh),讓使用者審閱確認後再執行刪除動作,最大程度地保障了資料安全性。對於使用 Btrfs 等現代檔案系統的使用者,它甚至支援區塊層級的去重(Deduplication),釋放空間而不需刪除檔案。
核心特色:
- 極致效能:採用 C 語言與多執行緒設計,掃描數百 GB 的資料僅需極短時間。
- 安全優先:預設不刪檔,僅產出可執行的刪除腳本,提供二次確認機會。
- 多樣偵測:不僅能找重複檔,還能處理空資料夾、損壞連結與重複目錄。
- 檔案系統支援:特別支援 Btrfs、XFS 與 APFS 的 Reflink(CoW)去重功能,節省空間且速度極快。
常用指令
rmlint 主要透過指令列運作,操作邏輯為「先掃描、後確認、再執行」。
啟動與基礎操作
# 掃描當前目錄 (不刪除,僅產生報告與腳本)
rmlint
# 掃描指定目錄並顯示進度條
rmlint /home/user/Downloads -g
# 執行剛剛產生的刪除腳本 (請務必先檢查內容)
./rmlint.sh
| 參數 | 功能說明 | 備註 |
|---|---|---|
| -g, –progress | 顯示進度 | 在掃描大型目錄時顯示進度條 |
| -T, –types | 指定類型 | 可指定尋找 duplicates, emptyfiles, brokenlinks 等 |
| -o, –output | 輸出格式 | 可輸出為 sh (預設), json, csv 或 summary |
| -S, –rank | 排序策略 | 設定保留哪個檔案 (如保留最早的 mtime) |
| -c, –config | 讀取設定 | 支援從設定檔讀取複雜的過濾規則 |
| -y, –yaml | YAML 輸出 | 以 YAML 格式輸出結果,便於自動化整合 |
進階技巧
Btrfs 去重神技:若您的硬碟格式為 Btrfs,使用以下指令可以用「複製引用 (Reflink)」來取代重複檔案,瞬間釋放空間且不需實際刪除檔案:
rmlint --clone接著執行./rmlint.sh自訂保留規則:rmlint 預設會保留「原始」檔案(通常是路徑較短或建立時間較早的),您可以用
-S參數改變策略。例如,保留最新的檔案:
rmlint -S mtime(Sort by modification time)排除特定目錄:掃描全碟時,可忽略重要的系統目錄以策安全:
rmlint / --exclude /boot --exclude /etc
操作介面




