ddh
brew install ddh
v0.13.0
LGPL-3.0-only
Fast duplicate file finder
12
30-day installs · #8062
26
90-day · #9004
155
365-day · #8016
488
★ GitHub stars · updated 12mo ago
Build dependencies
GitHub topics
cli
rust
Links
- https://github.com/darakian/ddh
- GitHub: darakian/ddh
- Brew formula source: Formula/d/ddh.rb
Raw metadata
{
"aliases": [],
"alternatives": [],
"build_dependencies": [
"rust"
],
"categories": [],
"caveats": null,
"conflicts_with": [],
"dependencies": [],
"deprecated": 0,
"deprecation_reason": null,
"desc": "Fast duplicate file finder",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:36:53+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "ddh",
"github_default_branch": "master",
"github_last_commit_at": "2025-08-27T22:12:07Z",
"github_readme_excerpt": "# The **D**irectory **D**ifferential **h**Tool\nDDH traverses input directories and their subdirectories. It also hashes files as needed and reports findings.\n\nThe H in \"hTool\" is silent. The H in its abbreviation, \"DDH,\" is not.\n\nThis tool is called DDH for two very good reasons.\n* DDT is a dangerous pesticide\n* I mistyped when I created the project\n\n## Usage\nDDH is usable both as a library and as a stand alone CLI tool and aims to be simple to use in both cases.\n\n## Library example\n```rust\nlet (files, errors): (Vec\u003cFileinfo\u003e, Vec\u003c(_, _)\u003e) = ddh::deduplicate_dirs(dirs);\nlet (shared, unique): (Vec\u003c\u0026Fileinfo\u003e, Vec\u003c\u0026Fileinfo\u003e) = files\n .par_iter()\n .partition(|\u0026x| x.get_paths().len()\u003e1);\nprocess_full_output(\u0026shared, \u0026unique, \u0026files, \u0026errors, \u0026arguments);\n```\n\n## CLI Install\n* Install [Rust](https://www.rust-lang.org/en-US/install.html)\n* `cargo install --git https://github.com/darakian/ddh ddh`\n* The DDH binary will be installed into `$CARGO_HOME/.bin/ddh`, which usually is `$HOME/.cargo/bin/ddh`. This should be in your `PATH` already if you\u0027re using rustup.\n\n## CLI Features\nDDH supports both a `standard` output for human comprehension and a parsable `json` output for custom tools such as [ddh-move](https://github.com/JayWalker512/ddh-move).\n\n## CLI Example\n```\nDirectory Difference hTool\nJon Moroney jmoroney@hawaii.edu\nCompare and contrast directories.\n\nExample invocation: ddh -v duplicates -d /home/jon/downloads /home/jon/documents\nExample pipe: ddh -o no -v all -f json -d ~/Downloads/ | someJsonParser.bin\n\nUsage: ddh [OPTIONS]\n\nOptions:\n -m, --minimum [\u003cMIN_SIZE\u003e]\n Minimum file size in bytes to consider [default: 0]\n -b, --blocksize [\u003cBLOCKSIZE\u003e]\n Set the display blocksize to Bytes, Kilobytes, Megabytes or Gigabytes [default: K] [possible values: B, K, M, G]\n -v, --verbosity [\u003cVERBOSITY\u003e]\n Set verbosity for printed output [default: quiet] [possible values: quiet, duplicates, all]\n -o, --output [\u003cOUT",
"github_repo": "darakian/ddh",
"github_stars": 488,
"github_topics": [
"cli",
"rust"
],
"homepage": "https://github.com/darakian/ddh",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 12,
"installs_365d": 155,
"installs_90d": 26,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "LGPL-3.0-only",
"llm_generated_at": null,
"llm_model": null,
"name": "ddh",
"oldnames": [],
"one_liner": null,
"optional_dependencies": [],
"rank_30d": 8062,
"rank_365d": 8016,
"rank_90d": 9004,
"raw_hash": "c5159a37506e240e",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/d/ddh.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": null,
"version_stable": "0.13.0",
"versioned_formulae": [],
"why_use_this": null
}