Skip to content

rmlint

極速重複檔案清理工具

軟體分類 系統管理 / 系統工具
軟體標籤
開發廠商 Christopher Hersch
Stars
0
Forks
0
License
GNU GPL V3
Version
v2.10.2
Update
OS

產品說明

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, –yamlYAML 輸出以 YAML 格式輸出結果,便於自動化整合

進階技巧

  • Btrfs 去重神技:若您的硬碟格式為 Btrfs,使用以下指令可以用「複製引用 (Reflink)」來取代重複檔案,瞬間釋放空間且不需實際刪除檔案:
    rmlint --clone 接著執行 ./rmlint.sh

  • 自訂保留規則:rmlint 預設會保留「原始」檔案(通常是路徑較短或建立時間較早的),您可以用 -S 參數改變策略。例如,保留最新的檔案:
    rmlint -S mtime (Sort by modification time)

  • 排除特定目錄:掃描全碟時,可忽略重要的系統目錄以策安全:
    rmlint / --exclude /boot --exclude /etc


操作介面