← 中文资源

简体中文版本

构建内容寻址的文件去重工具

三级比较的文件去重 CLI:先尺寸、再首尾 4KB 哈希、最后全量 SHA-256,支持硬链接或内容寻址库两种动作。

阅读英文原文

目标

构建遍历目录、按尺寸分组、用部分哈希消歧、最后全量 SHA-256 确认的重复文件查找工具,输出含可回收字节的报告,并可选删除、硬链接合并或移入内容寻址存储。

要点

分段策略让大媒体库几乎不读全量字节——字节计数测试断言总读取量证明层级真生效;硬链接动作先改名备份再建链再删备份,崩溃留下的备份文件就是恢复记录;跨设备硬链接以设备号检查直接拒绝。

提示

dry-run 是默认模式,JSON 报告是评审对象也是监控可告警的产物(可回收字节趋势)。

验证

actor 测试在真实临时树上以 inode 层面验证硬链接;store 模式的撤销日志可恢复原始布局。 项目目录骨架:

dedupe/
├── bin/dedupe.js
├── src/
│   ├── walk.js
│   ├── pipeline.js
│   ├── hash.js
│   └── actors/
│       ├── report.js
│       ├── link.js
│       └── store.js
├── test/
│   ├── pipeline.test.js
│   └── actors.test.js
└── package.json

实施阶段:Lazy walker → Staged hash pipeline → Report and link actors → Content-addressed store actor。