dupeGuru 完整使用指南:三大模式的重复文件扫描、模糊匹配与结果处理全解析

发布时间:2026/10/3 2:05:30
dupeGuru 完整使用指南:三大模式的重复文件扫描、模糊匹配与结果处理全解析 桌面应用【免费下载链接】dupeguruFind duplicate files项目地址https://gitcode.com/gh_mirrors/du/dupeguru点击查看免费下载dupeGuru 是一款跨平台Linux、macOS、Windows的开源重复文件查找工具核心代码位于 core 目录采用 Python 3 编写、以 Qt 为 UI 框架见 README.md。本文以官方帮助文档 help/en/index.rst 及其子章节为骨架系统讲解 dupeGuru 的 Standard / Music / Picture 三种应用模式、Worded / Contents / Picture Blocks 等扫描算法与 Filter Hardness 阈值机制、结果分组与 Delta 差值审查、以及偏好设置与安全性设计并辅以仓库源码佐证底层实现。读完本文你将能够完成从首次查重到精确清理重复文件的完整实战闭环并理解各类扫描选项背后的计算原理。认识 dupeGuru三大模式与整体工作流dupeGuru 是一个用于在计算机上查找重复文件的工具具有三种模式Standard、Music 和 Picture每种模式拥有各自的扫描类型与特色功能见 help/en/index.rst。虽然不看文档也能上手但要真正掌握它仍建议通读整套帮助文档若只想完成第一次查重可直接跳到 快速开始。从仓库结构看三种模式的扫描器分属独立子包Standard 模式在 core/se、Music 模式在 core/me、Picture 模式在 core/pe共享的扫描调度逻辑则在 core/scanner.py 与 core/engine.py 中。核心逻辑与 Qt 界面代码分离分别位于 core 与 qt这也解释了为什么文档强调打开偏好面板前先选好应用模式——不同模式会暴露不同的扫描类型与偏好选项。快速开始一次默认配置的标准扫描快速开始 给出的完整流程如下启动 dupeGuru通过拖拽或点击按钮添加要扫描的文件夹点击Scan开始扫描等待扫描过程结束逐一查看每个重复组缩进显示的文件即重复文件确认它确实是该组参考文件组内第一行、不缩进、复选框被禁用的文件的重复若某文件是误报选中它并执行Actions → Remove Selected from Results确认结果中没有误报后执行Edit → Mark All再执行Actions → Send Marked to Recycle bin即把已标记的重复文件送入回收站。这只是基础扫描。文档明确指出dupeGuru 提供大量可调参数以获得不同结果并有多种审查、修改结果的手段这正是下文展开的内容。扫描类型与算法原理dupeGuru 有 3 种基本扫描方式Worded词法扫描、Contents内容扫描与Picture Blocks图片块扫描前两者服务于 Standard 与 Music 模式后者专属于 Picture 模式见 scan.rst。扫描行为通过偏好面板配置。在源码中Scanner._getmatches()core/scanner.py根据scan_type分发到不同的匹配引擎例如ScanType.CONTENTS与ScanType.FOLDERS走engine.getmatches_by_contents()其余走engine.getmatches()。Worded 扫描从文件名或音乐标签提取词串Worded 扫描会从每个文件提取一个字符串并将其拆分为单词字符串可来自两个来源文件名或音乐标签仅 Music 版。当来源是音乐标签时需要选择使用哪些标签。例如选择分析artist和title标签会得到类似 The White Stripes - Seven Nation Army 的字符串scan.rst。分词规则如下scan.rst按空格字符切分移除所有标点部分替换为空格部分直接删除所有单词转小写。例如字符串 This guys song(remix) 会得到this、guys、song、remix四个词。匹配百分比的计算两个字符串的匹配度 匹配的单词数 ÷ 两串的单词总数其中每个匹配词计 2 分。若结果 ≥ Filter Hardness如 80即判定为重复。例如 a b c d 与 c d e4 个词匹配、7 个词总数匹配率 57scan.rst。源码层面word_weighting、match_similar_words、min_match_percentage作为关键字参数传入engine.getmatches()core/scanner.py其中min_match_percentage即 Filter Hardness 的实现载体。Fields 字段解决多段式文件名歌曲文件名常含多段信息会造成误报。例如 Dolly Parton - I Will Always Love You 与 Whitney Houston - I Will Always Love You 并非同一首歌演唱者不同但朴素算法下匹配率高达 71%。为此引入Fields概念字段以-分隔。选择Filename - Fields扫描类型时每个字段被单独比较最终匹配分数取所有字段中的最低值。上例中标题 100% 匹配、歌手 0% 匹配最终得分为 0scan.rst。由于命名策略并非完全统一可能出现 The White Stripes - Seven Nation Army 与 Seven Nation Army - The White Stripes 这类字段顺序颠倒的情况因此提供Filename - Fields (No Order)类型所有字段两两比较保留最高分再取各字段最低分作为最终分数——本例结果为 100scan.rst。源码中该类型由ScanType.FIELDSNOORDER触发会设置no_field_orderTrue后再按 FIELDS 处理core/scanner.py。注意每个字段只能用一次。因此 The White Stripes - The White Stripes 与 The White Stripes - Seven Nation Army 的匹配分是 0——第二个 The White Stripes 已被第一个字段用掉无法再与对方首字段比较scan.rst。Tags扫描方式始终是字段化的选择该方式时还需指定参与比较的标签每个标签即一个字段。词权重Word Weighting开启后匹配百分比的计算方式改变更大的词权重更高。每个词不再计为 1而是按字符数计值。例如 ab cde fghi 与 ab cde fghij总字符 19匹配字符 10ab 计 4cde 计 6匹配率 53%scan.rst。该选项在源码中对应Scanner.word_weighting通过kw[weight_words]传入匹配引擎core/scanner.py。相似词匹配Similarity Matching开启后相似单词也会被计为匹配。例如 The White Stripes 与 The White Stripe 的匹配分将从 66 升到 100scan.rst。判定规则两个词仅需少量编辑操作删一个字母、加一个字母等即可相等即视为相似实际使用的函数是 Python 的get_close_matches截断值为0.8scan.rst。警告该选项需谨慎使用。开启后结果中很可能出现大量误报但也能找到其他方式找不到的重复项且扫描速度会显著变慢scan.rst。源码中的开关为Scanner.match_similar_words对应kw[match_similar_words]core/scanner.py。Contents 扫描按内容精确比对Contents 扫描比 Worded 简单得多读取文件内容若内容完全相同则视为重复scan.rst。相比文件名比较读内容耗时更长。为避免无谓地读取整个文件dupeGuru 先按文件大小分组丢弃组内孤立的文件再对剩余文件读取内容。内容比较使用MD5 哈希scan.rst。文档也客观指出虽然 MD5 撞库forge容易但那是有意伪造两个文件恰好同时具备相同 MD5 与相同大小的概率仍然极小。此外Filter Hardness 在此类扫描中不生效scan.rst——这一点与 FAQ 中Filter Hardness 滑块在 Contents 扫描下无法移动的现象完全吻合faq.rst。Folders 扫描查找重复文件夹Folders 是 Contents 的一种特殊扫描类型行为与普通 Contents 扫描一致但目标是找重复文件夹而非重复文件。若两个文件夹内所有文件的对应内容都相同则二者互为重复scan.rst。该扫描是递归的子文件夹也会被检查。dupeGuru 只保留最大的鱼若两个匹配的文件夹各自还包含子文件夹这些子文件夹不会出现在最终结果中。此模式下结果呈现的是文件夹而非文件scan.rst。这一去重去重行为在源码中也有印证get_dupe_groups()在ScanType.FOLDERS时会移除父路径也在匹配中的匹配core/scanner.py。Picture Blocks 扫描图片模糊匹配Picture 模式与另两种模式完全不同其扫描类型是独立的。第一个类型即Contents扫描的升级版——Picture Blocksscan.rst。流程分两阶段scan.rst图片分析阶段以 RGB 位图模式打开每张图片将其块化——建立 15×15 的网格计算每个格子的平均颜色。此阶段非常耗时结果会缓存到数据库picture cache即图片缓存。比较阶段将两图对应网格的平均颜色逐一比较计算颜色差各侧 R、G、B 差值之和所有差值累加为最终分数。若最终分数 ≤100 - threshold即判定匹配scan.rst。阈值 100 附加一个约束图片必须完全相同由于平均化偶有非完全相同图片得到 0 分但 100% 语义上即完全相同故这些情形被排除想要非常相似但允许少量模糊差异选 99%scan.rst。比较阶段是 CPU 密集型的可能耗时较长。该任务已利用多核 CPU 优化但由于模糊匹配的本质仍须每张图片与其他所有图片比较算法是二次方的若待比较图片数为 N比较次数为 N×Nscan.rst。源码中对应core/pe/matchblock.py的getmatches()core/pe/matchblock.py签名中的match_scaled、match_rotated分别对应偏好里的允许不同尺寸/不同旋转的图片匹配。EXIF Timestamp 扫描此类型很简单读取每张图片的 EXIF 信息并提取DateTimeOriginal标签若两图的标签相同则视为重复scan.rst。实现位于 core/pe/matchexif.py。警告被修改过的图片常常保留原 EXIF 时间戳使用该类型时需警惕误报scan.rst。文件夹选择与文件夹状态启动 dupeGuru 后首先看到的是文件夹选择窗口它包含应用模式选择、扫描类型选择以及待扫描文件夹列表folders.rst。应用模式选择三种模式的分工如下folders.rstStandard适用于任意类型文件最具通用性但缺少其他模式的专用特性Music只扫描音乐文件支持标签比较结果窗口含大量音频相关信息列Picture只扫描图片其 Contents 扫描类型是强大的模糊匹配器能找出相似但并非完全相同的图片。选择应用模式不仅会改变下方可用的扫描类型还会改变偏好面板中的可用选项。因此若要微调扫描务必先选好应用模式再打开偏好面板。扫描类型与文件夹列表扫描类型选择器决定本次扫描的方式详见 扫描文档。添加文件夹点击按钮。若之前添加过文件夹会弹出含最近添加文件夹的菜单点击其中一项即可直接加入点击菜单第一项Add New Folder...则弹窗选择新文件夹从未添加过时不会弹菜单直接提示选择新文件夹。另一种方式是直接把文件夹拖入列表folders.rst。移除文件夹选中后点击-。若选中的是某个子文件夹点击该按钮会把该子文件夹设为excluded排除状态而非移除folders.rst。文件夹的三种状态每个文件夹处于以下三种状态之一folders.rst状态含义Normal该文件夹中发现的重复文件可以被删除。默认状态。Reference该文件夹中的重复文件不可被删除其中的文件只能占据重复组的参考位置。若多个参考文件夹的文件落入同一重复组仅保留一个其余从组中移除。Excluded该目录下的文件不参与扫描。当为某个目录设置状态时其所有子文件夹自动继承该状态除非你显式给某个子文件夹单独设置状态folders.rst。准备好后点击Scan按钮启动扫描结束后进入结果窗口。结果审查重复组、参考文件与 Delta 差值扫描完成后dupeGuru 以重复组列表形式展示结果results.rst。重复组的结构一个重复组是一组彼此全部匹配的文件。每组有一个参考文件和一个或多个重复文件参考文件是组内第一个文件其复选框被禁用其下缩进显示的即是重复文件results.rst。你可以标记重复文件但永远不能标记组的参考文件——这是防止 dupeGuru 连重复文件带参考文件一起删掉的安全措施results.rst。参考文件的确定规则results.rst优先看文件夹状态来自Reference 文件夹的文件在该组中永远是参考文件若全部来自普通文件夹则由文件大小决定dupeGuru 假定你总想保留最大文件因此最大的文件占据参考位置。你可以手动更换参考文件选中想要提升的重复文件点击Actions → Make Selected into Referenceresults.rst。审查结果的方法虽然你可以直接Edit → Mark All然后Actions → Send Marked to Recycle bin快速删除所有重复文件但文档始终建议在删除前逐一审查results.rst。Details 面板显示当前选中文件及其参考文件的全部细节非常适合快速判断某个重复是否真的是重复也可以双击文件用系统关联应用打开它results.rst。策略选择若误报多于真重复例如 Filter Hardness 很低最佳做法是审查后标记真正的重复再执行Actions → Send Marked to Recycle bin若真重复多于误报则反过来标记所有误报文件执行Actions → Remove Marked from Resultsresults.rst。标记与选择marked已标记指重复文件旁的小方框被打勾selected已选中指该文件被高亮。dupeGuru 支持标准的 Shift/Command/Control 多选操作按空格键可切换所有已选中文件的标记状态results.rst。Show Dupes Only 模式开启后结果只显示重复文件、不显示各自的参考文件且仍可正常选择、标记、排序results.rst。典型应用场景正常模式下结果按重复组的参考文件排序因此若想标记所有 exe 扩展名的重复文件直接按 Kind 列排序是做不到的一个组可能包含多种类型文件。此时用 Dupes Only 模式即可完成results.rst启用 Dupes Only 模式通过 Columns 菜单添加 Kind 列点击 Kind 列头按类型排序找到第一个 exe 类型的重复文件并选中向下滚动找到最后一个 exe 重复文件按住 Shift 点击它区间全选按空格标记所有选中的重复文件。Delta Values 差值视图打开此开关后数值列将显示相对于该重复文件参考值的差值而非绝对值并以橙色显示以便识别。例如重复文件 1.2 MB、参考文件 1.4 MB则 Size 列显示-0.2 MBresults.rst。此外非数值列的值若与参考不同也会显示为橙色相同则保持黑色。配合 Dupes Only 模式的列排序可实现非常强大的扫描后过滤results.rst。Dupes Only × Delta Values 的组合威力两者的组合才是 Dupes Only 的真正价值所在results.rst按差值范围筛选想删除与参考相差超过 300 KB 的重复可按 Size 列排序选中所有 -300 以下的重复删除再对列表底部 300 以上的重复做同样操作。按属性是否相同分组非数值列在差值模式下排序会把与参考相同黑色的行聚在一起。例如做了 Contents 扫描但只想删同名重复按文件名排序与参考同名的重复会聚在一起且显示黑色。改选参考文件新扫描且无参考文件夹时每组的参考是最大文件。若想改为最新修改时间可把 Dupes Only 结果按修改时间降序排列选中所有修改时间差值 0 的重复执行Make Selected into Reference。必须降序的原因是同一组内若选中多个文件只有列表中的第一个会被提升为参考其余被忽略降序排列能保证列表第一项就是最后修改的文件。FAQ 中给出了大量可直接套用的组合操作例如删除与参考相差超过 300 KB 的文件、把最新修改文件设为参考、删除与参考相差超过 3 秒的歌曲、把最高码率歌曲设为参考等均为上述两种模式的组合演练faq.rst。结果过滤FilteringdupeGuru 支持扫描后过滤可把结果缩小到某个子集再执行操作例如轻松标记文件名含 copy 的所有重复results.rst。用法在结果窗口右上角的 Filter 搜索框中输入过滤串。输入内容会应用于结果中每个重复的完整路径只有至少一个重复匹配过滤条件的重复组才会显示results.rst。当组内并非所有重复都匹配过滤条件时该组仍会完整显示所有重复但不匹配的重复处于参考模式——因此你执行 Mark All 之类的操作时可以确信只会标记到过滤出的重复。清空输入框或点击 X 即可回到未过滤状态results.rst。过滤语法results.rst简单模式默认输入即匹配字符串唯一的通配符是*。例如输入[*]可匹配任何带[]括号的内容括号中间任意高级模式勾选 Use regular expressions when filtering 后改用正则表达式匹配简单与正则模式均不区分大小写正则不需要匹配整个文件名只要包含一段匹配表达式的子串即可。Actions 菜单全解析结果窗口的 Actions 菜单包含以下操作results.rst菜单项行为说明Clear Ignore List清除所有已添加的忽略匹配。需重新扫描后新清除的忽略列表才生效。Export Results to XHTML将当前结果导出为 XHTML 文件导出时可见的列即文件中的列文件会自动用默认浏览器打开。Send Marked to Trash把已标记的重复文件送入回收站操作前会展示删除选项见下节。Move Marked to...提示目标位置把已标记文件移动到该位置是否重建源路径取决于 Copy and Move 偏好。Copy Marked to...提示目标位置把已标记文件复制到该位置同样受 Copy and Move 偏好影响。Remove Marked from Results从结果中移除已标记的重复不动磁盘上的实际文件。Remove Selected from Results从结果中移除选中的重复注意所有选中的参考文件会被忽略只有重复可被此操作移除。Make Selected into Reference把选中的重复提升为参考。若该重复所在组的参考来自参考文件夹文件名蓝色显示则不生效若同一组选中多个仅第一个被提升。Add Selected to Ignore List先把选中重复从结果中移除再把该重复与当前参考的匹配加入忽略列表此后扫描中该匹配不再出现重复文件本身可能再次出现但会匹配到其他参考。可用 Clear Ignore List 清除。Open Selected with Default Application用系统关联应用打开选中文件。Reveal Selected in Finder打开选中文件所在的文件夹。Invoke Custom Command用当前选中文件作为参数调用你在偏好中设置的外部程序。Rename Selected提示新名称并重命名选中文件。删除选项Deletion Options这些选项影响删除重复文件的方式大多数情况下无需开启results.rstLink deleted files链接已删除文件删除后用指向参考文件的链接替换原文件可选symlink符号链接或hardlink硬链接。简言之符号链接是指向文件路径的快捷方式原文件被删或移动则链接失效硬链接指向文件本身等价于真实文件只有所有指向该文件的硬链接都被删除文件才真正消失。macOS 与 Linux 下完整支持Windows 下较复杂——Windows XP 不支持Vista 及以上支持但需要 dupeGuru 以管理员权限运行。Directly delete files直接删除文件不送回收站而是直接删除主要用于故障排查。通常仅在 dupeGuru 无法正常删除文件例如网络存储 NAS 上删除失败时才开启。FAQ 也印证了这一点无法送入回收站时最常见原因是文件权限——需要对待删除文件拥有写权限若修复权限后仍失败可尝试开启 Directly delete filesfaq.rst。偏好设置详解偏好面板中各项设置的完整说明如下preferences.rst偏好项说明Tags to scan使用Tags扫描类型时选择用于比较的标签。Word weighting词权重见词权重一节。Match similar words相似词匹配见相似词匹配一节。Match pictures of different dimensions勾选后允许不同尺寸的图片进入同一重复组。对应 core/pe/matchblock.py 的match_scaled参数。Match pictures of different rotations勾选后允许不同旋转角度的图片进入同一重复组。对应match_rotated参数。Filter Hardness两个文件被视为重复所需的阈值。值越低重复越多阈值含义取决于扫描类型。仅对 Worded 与 Picture Blocks 扫描生效。Can mix file kind勾选后允许重复组内出现不同扩展名的文件不勾选则不允许。源码层面该开关未开启时会在get_dupe_groups()中按扩展名过滤匹配core/scanner.py。Ignore duplicates hardlinking to the same file开启后 dupeGuru 会校验重复是否指向同一inode文件系统节点若是则不算重复。仅适用于 macOS 与 Linux。Use regular expressions when filtering勾选后过滤功能将把过滤查询当作正则表达式处理。Remove empty folders after delete or move开启后当文件被删除或移动且所在文件夹变空时该文件夹会被一并删除。Copy and Move决定 Actions 菜单中 Copy/Move 操作的行为见下。Custom Command决定 Invoke Custom Command 动作调用的外部命令见下。Copy and Move 的三种路径策略preferences.rstRight in destination所有文件直接放入所选目标目录完全不重建源路径。Recreate relative path在目标目录中重建源文件的相对路径直到Directories 面板中的根选择为止。例如面板中加入/Users/foobar/SomeFolder把/Users/foobar/SomeFolder/SubFolder/SomeFile.ext移动到目标/Users/foobar/MyDestination最终落点是/Users/foobar/MyDestination/SubFolder源路径中的SomeFolder被裁剪掉。Recreate absolute path在目标目录中完整重建源文件的绝对路径。例如把/Users/foobar/SomeFolder/SubFolder/SomeFile.ext移动到/Users/foobar/MyDestination最终落点为/Users/foobar/MyDestination/Users/foobar/SomeFolder/SubFolder。所有情况下dupeGuru 都会妥善处理命名冲突若目标中已存在同名文件则在目标文件名前加数字前缀。Custom Command 外部命令该偏好决定 Invoke Custom Command 动作调用的命令可用于调用任何外部程序例如安装的 diff 对比工具preferences.rst。命令格式与命令行写法一致但包含 2 个占位符%d与%r分别会被替换为选中重复文件的路径%d和其参考文件的路径%r。若可执行文件路径含空格需用引号包裹占位符也应加引号因为重复与参考的路径很可能含空格。示例preferences.rstC:\Program Files\SuperDiffProg\SuperDiffProg.exe %d %r重新设定参考文件优先级Re-PrioritizedupeGuru 会尽量自动决定每组参考文件该由哪个重复担任但有时会选错。多数情况下Delta Values Dupes Only Make Selected into Reference 的组合已够用若仍不够可使用Re-Prioritization 对话框通过 Actions 菜单的 Re-Prioritize Results 调出reprioritize.rst。该对话框允许按条件为每个重复组挑选参考重复左侧列出可选条件右侧是你已选的条件列表。一个条件由类别 参数组成例如 Size (Highest) 表示最大的文件胜出Folder (/foo/bar) 表示该文件夹中的重复胜出。添加方法先在组合框中选择类别再在下方列表中选择子参数然后点击右箭头按钮reprioritize.rst。右侧列表的顺序很重要可通过拖拽调整挑选参考时先使用第一个条件若打平则使用第二个条件依此类推。例如条件依次为 Size (Highest) 与 Filename (Doesnt end with a number)则组内会选最大的文件若两个或多个文件大小相同则选文件名不以数字结尾的那个。当所有条件都打平时沿用组内重复原先的排列顺序reprioritize.rst。安全性与常见问题安全性设计FAQ 明确回答dupeGuru 使用起来有多安全非常安全。它被设计为防止删除你不打算删除的文件。第一重保护是参考文件夹系统——可定义绝对不想让 dupeGuru 删除其中文件的文件夹第二重保护是组参考系统——确保每个重复组始终至少保留一个成员faq.rst。状态栏的 (X discarded) 提示在某些情况下出于安全原因部分匹配不会进入最终结果。示例有 A、B、C 三个文件用较低 Filter Hardness 扫描后A 匹配 B、A 匹配 C但 B 与 C 不匹配。dupeGuru 无法把三者放进同一组并非组内所有文件两两匹配但它也不会拆成 A-B 与 A-C 两个组原因B 与 C 不匹配很可能意味着二者或其之一并非真正的重复若分成两组你可能会把 B、C 都删掉而其中一个是误报这显然不是你想要的结果。因此 dupeGuru 会丢弃 A-C 这条匹配并在状态栏给出提示。若你删除 B 后重新扫描A-C 匹配会再次出现在结果中faq.rst。参考文件的复选框被禁用无法标记重复组的参考文件组内第一个文件。此时可把某个重复提升为参考选中组内想要提升的重复文件点击Actions → Make Selected into Reference。若参考文件来自参考文件夹蓝色文字显示则无法将其移出参考位置faq.rst。用户文件与偏好存储位置用户文件调试日志、缓存等的位置因平台而异faq.rstLinux~/.local/share/data/Hardcoded Software/dupeGurumacOS~/Library/Application Support/dupeGuru偏好设置存储在其他位置Linux~/.config/Hardcoded Software/dupeGuru.confmacOS内置于defaults系统键名为com.hardcoded-software.dupeguru其他高频 FAQ想要确保某个文件夹的文件永不删除在文件夹选择中将其状态设为Referencefaq.rst。想标记某文件夹下的所有文件启用 Dupes Only 模式并点击 Folder 列排序即可轻松选中同文件夹的重复并按空格标记faq.rst。不想把 [live] 和 [remix] 版本当作重复阈值足够低时它们必然出现无法预防但可用扫描后过滤轻松移除在 Filter 框输入[*]执行Mark → Mark All再Actions → Remove Selected from Resultsfaq.rst。Filter Hardness 滑块动不了该滑块只对支持模糊性的扫描类型有意义Contents 等只支持精确匹配的扫描类型下它会被禁用faq.rst。Picture 模式 Contents 扫描为什么慢该方法能检测不完全相同的重复照片代价是时间——每张图都要与其他所有图逐一模糊匹配非常耗 CPU。若只需找精确重复改用 Standard 模式 Contents 扫描若照片带 EXIF 标签可尝试快得多的 EXIF 扫描faq.rst。结语从 Worded 扫描的词级模糊匹配、Contents 扫描的大小分组 MD5 校验到 Picture Blocks 的 15×15 网格色块比较dupeGuru 用一套可配置的扫描体系覆盖了文件名级、内容级、图片内容级三个粒度的查重需求而参考文件夹、组参考、忽略列表与(X discarded)丢弃机制则共同构成了它的安全底线。结合本文的快捷操作清单Dupes Only Delta Values 过滤 Make Selected into Reference你可以在扫描后快速把结果收缩到真正需要的子集再安全地批量回收、移动或复制。若想深入了解内部实现可继续阅读 开发者文档、扫描器源码 core/scanner.py 与图片匹配实现 core/pe/matchblock.py。赞分享桌面应用【免费下载链接】dupeguruFind duplicate files项目地址https://gitcode.com/gh_mirrors/du/dupeguru点击查看免费下载相关推荐突破重复文件查找极限dupeGuru自定义扫描模式深度解析突破重复文件查找极限dupeGuru自定义扫描模式深度解析 dupeGuru是一款高效的重复文件查找工具能够帮助用户快速定位并清理系统中的重复文件释放宝贵桌面应用简单三步告别重复文件DupeGuru完整使用指南简单三步告别重复文件DupeGuru完整使用指南 DupeGuru是一款高效的重复文件查找工具能够帮助用户快速扫描并清理系统中的重复文件释放宝贵的存储空间桌面应用如何快速清理重复文件dupeGuru完整使用指南如何快速清理重复文件dupeGuru完整使用指南 还在为电脑存储空间不足而烦恼吗dupeGuru这款强大的重复文件清理工具能够帮你彻底解决这个问题。作为一款桌面应用上一篇从论文到产品Nemotron OCR v2的端到端训练与推理架构解析下一篇GitHub Desktop 错误上报机制深度解析从 Dispatcher 错误处理器到异常崩溃处理创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考