READMESource: main@0453bfe5
dsh-file-dedupe
中文 | English
DeepSeek Harness(DSH)文件查重插件:扫描任意本地目录,按 SHA-256 内容哈希找出内容完全相同的重复文件,并安全地清理。
一句话价值:装完就能在界面左下角点「🔍 文件查重」,几十秒内知道哪些文件是重复的、能腾出多少空间。
- 可视化面板:应用左下角常驻的「🔍 文件查重」浮动按钮(点开即面板),以及 设置 → 文件查重 区块。
- 对话工具:
file_dedupe_scan/file_dedupe_cleanup/file_dedupe_restore,直接让 Agent 帮你查。 - 安全设计:只处理确实属于某个重复组的路径;每个重复组永远至少保留一个文件;Agent 工具只能把冗余副本移入可恢复的隔离区,永久删除必须由你在面板里二次确认。
安装
从 GitHub 直接安装(推荐):
dsh plugin --profile web add github:zizhuang/dsh-file-dedupe
把 web 换成你的 profile 名(desktop、headless、tui 等)。安装后重启/刷新即可看到浮动按钮。
尚未发布到 npm(因此
add dsh-file-dedupe暂时不可用);被社区插件市场收录后,也可以在应用内「设置 → 插件市场」一键安装。
工作原理
- 遍历目标目录,先按文件大小分组;
- 只对「同大小且存在多个成员」的候选文件做 SHA-256 哈希(1 MiB 流式分块,大文件不占内存);
- 内容哈希相同的文件即为真重复——与文件名无关。
结果包含:重复组数、冗余文件数、可释放空间、每组文件清单。
清理方式
| 操作 | 入口 | 可恢复 |
|---|---|---|
| 移入隔离区 | 面板 + file_dedupe_cleanup |
✅ 用 file_dedupe_restore 恢复 |
| 永久删除 | 仅面板,需二次确认 | ❌ |
隔离文件存放于 $DSH_HOME/dsh-file-dedupe/quarantine/,并记录清单;恢复时精确回到原路径(目标位置已被占用则拒绝覆盖)。
配置
在 profile 的 cordis.patch.yml 中覆盖:
| 字段 | 默认值 | 含义 |
|---|---|---|
minFileSize |
1 |
忽略小于该字节数的文件 |
maxFiles |
100000 |
单次扫描最多收录的文件数 |
maxGroups |
500 |
展示的重复组上限(按可释放空间排序) |
对话工具示例
file_dedupe_scan(root="D:\\file store") → 重复组清单 + 可释放空间
file_dedupe_cleanup(scanId="scan-…", paths=[…]) → 把冗余副本移入隔离区
file_dedupe_restore(paths=[…]) → 从隔离区恢复
注意事项
- 查重是字节级内容相同判定:同名不同内容不算重复,不同名同内容算重复。
- 超大目录扫描需要时间,可用
minFileSize/maxFiles缩小范围。 - 清理只影响你勾选的冗余副本,每组永远至少保留一个文件。
兼容性
在 DSH 0.2.0-rc.2(Windows 桌面版)上实测通过:安装、宿主路由、浮动按钮/设置面板、扫描 → 隔离 → 恢复全流程。
许可证
MIT
No comments yet. Be the first to write one.