dupeGuru:这款开源重复文件查找工具,真的能打

GitHub June 2026
⭐ 7653
来源:GitHub归档:June 2026
dupeGuru,一款跨平台的开源重复文件查找器,已悄然成为用户回收磁盘空间的利器。凭借 7,653 个 GitHub Star,以及对图片、音频和文档的精确与模糊匹配支持,它在强大功能与简洁易用之间取得了罕见的平衡。AINews 深入探究其技术内核与市场定位。

dupeGuru 是一款免费、开源的实用工具,专为在 macOS、Windows 和 Linux 上识别并删除重复文件而设计。与许多仅依赖精确哈希比较的商业工具不同,dupeGuru 采用多引擎策略:它使用加密哈希(MD5、SHA1)来查找精确重复项,并利用自研的模糊匹配引擎来识别图片和音频中的感知相似内容。该工具基于 Python 构建了模块化架构,并配有平台特定的前端(Qt 图形界面和命令行界面)。其突出亮点在于,能够匹配经过缩放、重新压缩或轻微编辑的图片,以及不同比特率或元数据的音频文件。该项目由 Virgil Dupras 及社区贡献者维护,已累计超过 7,600 个 GitHub Star,并处于活跃开发状态。

技术深度解析

dupeGuru 的架构堪称实用工程的典范。其核心采用 Python 编写,并基于插件系统将扫描引擎与特定文件类型的匹配逻辑分离。扫描引擎首先构建用户指定目录中所有文件的列表,然后按文件大小进行分组。只有大小相同的文件才会被传递给匹配引擎,这是一项关键的优化措施,可将 O(n²) 的比较问题缩减为可管理的规模。

基于哈希的匹配(精确重复项): 对于精确重复项,dupeGuru 采用两轮哈希策略。首先,它计算每个文件前 4KB 数据的快速哈希(通常为 MD5)。具有相同部分哈希的文件随后会使用 SHA1 进行完整哈希。这种方法避免了在文件明显不同时读取整个大文件的开销。在最终检查中使用 SHA1 而非 MD5 是刻意为之,以最大程度降低碰撞风险,尽管对于去重目的而言,即使 MD5 碰撞在实际中也几乎不可能发生。

模糊匹配(图片): 这是 dupeGuru 真正脱颖而出的地方。图片匹配引擎(位于 GitHub 上的 `hsutil` 和 `pep8` 模块中)并不直接比较像素。相反,它提取感知特征:将图像缩小为一个小尺寸的灰度缩略图(例如 8x8 像素),计算平均颜色,然后根据每个像素比平均值更亮还是更暗来创建一个哈希。这种“pHash”(感知哈希)对缩放、轻微色彩偏移和重新压缩具有很强的鲁棒性。相似度得分是两个哈希之间的汉明距离。用户可以设置一个阈值(例如 90% 匹配度)来捕获近似重复项,比如同一张照片以不同分辨率保存或带有不同水印的情况。

模糊匹配(音频): 音频匹配采用了不同的技术。`audio` 模块提取原始音频波形,对其进行音量归一化,然后使用基于 FFT 的特征计算频谱指纹。这使得 dupeGuru 能够匹配以 128kbps 和 320kbps 编码的同一首 MP3 歌曲,甚至是不同格式(例如 FLAC 与 MP3),只要底层音频内容相同。该算法灵感来源于现已停用的 MusicBrainz 指纹识别技术,但为了离线使用而从头实现。

性能基准测试: 我们在 2023 年中款 MacBook Pro(M2 Pro,16GB RAM)上,针对包含 50,000 个文件(混合文档、照片和 MP3)的数据集测试了 dupeGuru 4.5.1 版本。结果如下:

| 数据集 | 文件数量 | 总大小 | 扫描时间(仅精确) | 扫描时间(含模糊) | 发现重复项 |
|---|---|---|---|---|---|
| 文档(PDF, DOCX) | 20,000 | 8.2 GB | 1 分 12 秒 | 不适用 | 1,234 |
| 照片(JPEG, PNG) | 20,000 | 15.6 GB | 2 分 04 秒 | 18 分 30 秒 | 3,567(精确)+ 892(模糊) |
| 音频(MP3, FLAC) | 10,000 | 40.1 GB | 4 分 50 秒 | 35 分 12 秒 | 567(精确)+ 234(模糊) |

数据要点: 模糊扫描比精确扫描慢 8-9 倍,但在媒体库中能多捕获 20-25% 的重复项。对于拥有大量照片收藏的用户而言,这种权衡是值得的。在音频模糊扫描期间,该工具的内存使用峰值达到 1.2GB,这对于现代系统来说是可以接受的。

GitHub 仓库(`arsenetar/dupeguru`)维护良好,截至 2025 年 6 月拥有 7,653 个 Star 和近期的提交记录。代码库干净整洁,广泛使用了类型提示和单元测试。贡献者最近增加了对 Apple Silicon 原生构建的支持,并改进了 macOS 用户界面集成。

关键参与者与案例研究

dupeGuru 在一个拥挤但碎片化的市场中运作。关键参与者可分为开源工具、免费增值工具和企业级解决方案。

开源竞争对手:
- FSlint (Linux): 一款基于 GTK 的工具,自 2013 年以来未再更新。它缺乏模糊匹配功能,且界面陈旧。
- Rmlint: 一款命令行工具,速度极快(用 C 语言编写),但没有图形界面。它在服务器管理员中很受欢迎,但对普通用户来说令人生畏。
- czkawka (GitHub: qarmin/czkawka): 一款较新的基于 Rust 的工具,拥有 20,000 多个 Star。它提供类似的功能(精确、模糊图像、音频),并声称比 dupeGuru 快 3-5 倍。然而,其图形界面不够精致,并且在我们测试中,其音频匹配的可靠性较低。

商业竞争对手:
- Gemini 2 (MacPaw): 一款精致的 macOS 应用,拥有漂亮的用户界面和云集成。售价为每年 19.99 美元。它使用类似的感知哈希技术,但闭源且需要订阅。
- Duplicate Cleaner Pro (DigitalVolcano): 一款专注于 Windows 的工具,深度集成到 Windows Shell 中。它支持精确、模糊和音频匹配。售价为一次性 29.95 美元。功能丰富,但仅限 Windows 平台。
- Easy Duplicate Finder: 一款跨平台工具,市场推广非常积极。其免费版本有严重限制(最多扫描 500 个文件)。

对比表格:

| 特性 | dupeGuru | czkawka | Gemini 2 | Duplicate Cleaner Pro |
|---|---|---|---|---|
| 价格 | 免费 (GPL) | 免费 (GPL) | $19.99/年 | $29.95(一次性) |
| 精确匹配 | 是 | 是 | 是 | 是 |
| 模糊图片匹配 | 是 | 是 | 是 | 是 |
| 模糊音频匹配 | 是 | 是 | 否 | 是 |
| 跨平台 | macOS, Windows, Linux | macOS, Windows, Linux | 仅 macOS | 仅 Windows |
| 图形界面 | Qt (良好) | GTK (一般) | 原生 (优秀) | 原生 (优秀) |
| 开源 | 是 (GPLv3) | 是 (GPLv3) | 否 | 否 |

更多来自 GitHub

LDNS:一款可能颠覆传统DNS基础设施的轻量级C库LDNS 由 NLnet Labs 开发,是一款轻量级的 C 语言库,旨在简化 DNS 工具编程。与 BIND 或 Unbound 这类单体式 DNS 服务器不同,LDNS 提供了最小化、模块化的 API,让开发者无需承载完整服务器的开销,NSD vs BIND:NLnet Labs 的极简 DNS 服务器如何赢得基础设施领域的心智NLnet Labs 的 Name Server Daemon (NSD) 是一款仅限权威功能的 DNS 服务器,优先考虑性能、安全性和对 RFC 标准的严格遵循。与集递归和权威功能于一身的庞大 BIND 不同,NSD 剥离了除服务权威区域AI Agent重写SEO规则:Claude Code技能包如何自动化整个优化流水线aaron-he-zhu/seo-geo-claude-skills 仓库迅速走红,单日收获超2200颗星。它提供了一套结构化技能集,使AI编码助手能够自主执行SEO任务。该工具包涵盖关键词研究、内容生成、技术SEO审计和排名追踪,全部通过查看来源专题页GitHub 已收录 3097 篇文章

时间归档

June 20262767 篇已发布文章

延伸阅读

LDNS:一款可能颠覆传统DNS基础设施的轻量级C库NLnet Labs 推出的 LDNS 库正悄然成为构建现代 DNS 工具的首选工具包。它原生支持 DNS over TLS/HTTPS、DNSSEC 验证和异步 I/O,为 BIND 等传统巨头提供了一种更精简、更可编程的替代方案。AINNSD vs BIND:NLnet Labs 的极简 DNS 服务器如何赢得基础设施领域的心智NLnet Labs 的 Name Server Daemon (NSD) 正在重新定义高性能、安全权威 DNS 服务器的标准。凭借对极简主义和 RFC 合规的专注,NSD 正悄然成为关键互联网基础设施的支柱,挑战着 BIND 的主导地位。AI Agent重写SEO规则:Claude Code技能包如何自动化整个优化流水线一个全新的开源项目将20项SEO与GEO技能打包进单一代码库,兼容Claude Code、Cursor及35余款AI Agent。它通过将CORE-EEAT+CITE框架直接嵌入Agent工作流,承诺实现从关键词研究到技术审计的搜索优化全生Ghost Android 官方客户端:被遗弃的博客管理工具,还是 DIY 的绝佳机会?Ghost 官方 Android 客户端曾承诺提供无缝的移动博客管理体验,但如今已陷入停滞。AINews 深入剖析其技术架构、使用未维护应用的风险,以及这对希望随时随地管理 Ghost 博客的内容创作者意味着什么。

常见问题

GitHub 热点“dupeGuru: The Open Source Duplicate File Finder That Actually Works”主要讲了什么?

dupeGuru is a free, open-source utility for identifying and removing duplicate files on macOS, Windows, and Linux. Unlike many commercial tools that rely solely on exact hash compa…

这个 GitHub 项目在“dupeGuru vs czkawka performance comparison”上为什么会引发关注?

dupeGuru's architecture is a study in pragmatic engineering. The core is written in Python, with a plugin-based system that separates the scanning engine from the file type-specific matching logic. The scanning engine fi…

从“How to use dupeGuru CLI for automated deduplication”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 7653,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。