20 个版本
0.13.0 | 2022 年 11 月 13 日 |
---|---|
0.12.0 | 2022 年 1 月 31 日 |
0.11.3 | 2020 年 8 月 23 日 |
0.11.1 | 2020 年 7 月 12 日 |
0.10.3 | 2019 年 7 月 17 日 |
#741 in 文件系统
30KB
605 代码行
Directory Differential hTool
DDH 遍历输入目录及其子目录。它还需要对文件进行哈希处理并报告结果。
"hTool" 中的 H 是不发音的。其缩写 "DDH" 中的 H 是发音的。
这个工具被称为 DDH 有两个非常好的原因。
- DDT 是一种危险的杀虫剂
- 我在创建项目时打错了字
使用方法
DDH 可以作为库和独立的 CLI 工具使用,并旨在在这两种情况下都易于使用。
库示例
let (files, errors): (Vec<Fileinfo>, Vec<(_, _)>) = ddh::deduplicate_dirs(dirs);
let (shared, unique): (Vec<&Fileinfo>, Vec<&Fileinfo>) = files
.par_iter()
.partition(|&x| x.get_paths().len()>1);
process_full_output(&shared, &unique, &files, &errors, &arguments);
CLI 安装
- 安装 Rust
cargoinstall --githttps://github.com/darakian/ddh ddh
- DDH 二进制文件将被安装到
$CARGO_HOME/.bin/ddh
,这通常是$HOME/.cargo/bin/ddh
。如果您使用 rustup,它应该已经包含在您的PATH
中。
CLI 功能
DDH 支持标准输出,便于人类理解,以及可解析的 json
输出,以便用于诸如 ddh-move 之类的自定义工具。
CLI 示例
Directory Difference hTool
Jon Moroney jmoroney@hawaii.edu
Compare and contrast directories.
Example invocation: ddh -v duplicates -d /home/jon/downloads /home/jon/documents
Example pipe: ddh -o no -v all -f json -d ~/Downloads/ | someJsonParser.bin
Usage: ddh [OPTIONS]
Options:
-m, --minimum [<MIN_SIZE>]
Minimum file size in bytes to consider [default: 0]
-b, --blocksize [<BLOCKSIZE>]
Set the display blocksize to Bytes, Kilobytes, Megabytes or Gigabytes [default: K] [possible values: B, K, M, G]
-v, --verbosity [<VERBOSITY>]
Set verbosity for printed output [default: quiet] [possible values: quiet, duplicates, all]
-o, --output [<OUTPUT>]
Set file to save all output. Use 'no' for no file output [default: Results.txt]
-f, --format [<FMT>]
Set output format [default: standard] [possible values: standard, json]
-i, --ignore <IGNORE_DIRS>
Directories to ignore (comma separated list)
-d, --directories <DIRECTORIES>...
Directories to parse
-h, --help
Print help information (use `--help` for more detail)
-V, --version
Print version information
DDH 如何工作?
DDH 通过对文件进行哈希处理以确定它们的唯一性来工作,因此它严重依赖于磁盘速度以实现性能。使用的算法选择在 此处 讨论。
依赖项
~2.8–4MB
~75K SLoC