1 个不稳定版本
0.2.0 | 2022 年 12 月 22 日 |
---|
#9 in #程序
22KB
263 代码行
multi-machine-dedup
关于
multi-machine-dedup 是一个使用 SQLite 实现多机功能的去重工具。
multi-machine-dedup 是一个 EDLA 项目。
edla.org 的目的是推广各个领域的技术前沿。
安装
cargo install multi-machine-dedup
如何使用
递归索引目录 <DIRECTORY_FULL_PATH> 并用 <LABEL> 标记,存储到 SQLite 数据库 <SQLITE_FILE> 中
multi-machine-dedup index -l <LABEL> --db <SQLITE_FILE> <DIRECTORY_FULL_PATH>
检查目录
multi-machine-dedup check-integrity -l <LABEL> --db <SQLITE_FILE>
比较两个数据库
multi-machine-dedup compare --db1 <SQLITE_FILE_1> --db2 <SQLITE_FILE_2>
SQL 查询示例
您可以使用如 DBeaver CE 或 SQLiteStudio 这样的便捷数据库工具查询生成的 SQLite 数据库。
查找大于 <A_SIZE> 的顶级重复文件
select label, full_path, hash,size,nb_dup from file , (select hash, count(*) as nb_dup from file where size > <A_SIZE>
group by hash order by nb_dup DESC, size DESC) as T
where file.hash = T.hash order by nb_dup DESC, size DESC ;
查找所有具有相同 <CRC_VALUE> 的文件
select * from file where hash=<A_CRC_VALUE> ;
查找所有具有 image/jpeg MIME 类型的文件
select * from hash where mime like "image/jpeg" ;
技巧
- 在 PowerShell 中启用调试模式
$Env:LOG='debug'; cargo run ...
- 在 PowerShell 中删除 LOG 环境变量
remove-item Env:LOG
- 显示 <SUBCOMMAND> 的帮助
multi-machine-dedup <SUBCOMMAND> --help
或
multi-machine-dedup help <SUBCOMMAND>
路线图
受到 https://github.com/hgrecco/dedup 的启发,multi-machine-dedup 可能会提供类似的功能。
许可
© 2022 Olivier ROLAND. 在 GPLv3 许可下分发。
依赖项
~28–38MB
~608K SLoC