# Install jdupes with Homebrew, apk, apt, dnf, MacPorts, Nix, scoop, zypper

Duplicate file finder and an enhanced fork of 'fdupes'. Version 1.31.1 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:jdupes
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install jdupes
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install jdupes
```

  Evidence: MacPorts ports tree: sysutils/jdupes/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add jdupes
```

  Evidence: Alpine Linux edge package indexes: jdupes from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install jdupes
```

  Evidence: Debian stable package indexes: jdupes from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install jdupes
```

  Evidence: Fedora Rawhide package metadata: jdupes from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#jdupes
```

  Evidence: nixpkgs package indexes: pkgs/by-name/jd/jdupes/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- zypper (92%):

```sh
sudo zypper install jdupes
```

  Evidence: openSUSE Tumbleweed package metadata: jdupes from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Scoop (92%):

```sh
scoop install main/jdupes
```

  Evidence: Scoop official bucket manifest trees: bucket/jdupes.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:jdupes
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/jdupes>
- **Version:** 1.31.1
- **Source summary:** Duplicate file finder and an enhanced fork of 'fdupes'
- **Homepage:** <https://codeberg.org/jbruchon/jdupes>
- **Repository:** <https://codeberg.org/jbruchon/jdupes>
- **Upstream docs:** <https://codeberg.org/jbruchon/jdupes/src/branch/master/README.md>
- **License:** MIT
- **Source archive:** <https://codeberg.org/jbruchon/jdupes/archive/v1.31.1.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- jdupes (cli)
- jdupes (alias)

## Dependencies

- libjodycode

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.31.1
- Local data: ok
- Upstream repository: https://codeberg.org/jbruchon/jdupes
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

jdupes is a duplicate-file finder and action tool descended from fdupes. Its upstream README emphasizes exact duplicate detection, data-loss avoidance, faster scans, native Windows support, hard-linking, symlinking, deletion, and block-level deduplication.

### Project history

Jody Bruchon's project began as performance and behavior patches for Adrian Lopez's fdupes. In the author-written history, Bruchon says the first change that led to jdupes was made during the last week of December 2014 after fdupes progress output proved slow over SSH.

The fork was first named fdupes-jody after the fdupes maintainer did not merge the patch set. Bruchon continued optimizing and adding features in 2015, including Windows and Mac OS X portability, hard-link support, size exclusion, sorting changes, Btrfs block-level dedupe support, and many performance improvements.

On December 23, 2015, fdupes-jody 2.2 was renamed to jdupes 1.0. In October 2023, Bruchon announced that jdupes, libjodycode, and his other software projects were migrating to Codeberg.

### Adoption history

The author history says jdupes spread into many Linux distributions, and the batch input records packages in Alpine, Homebrew, Debian, Fedora, MacPorts, Nix, Scoop, Ubuntu, and openSUSE. That breadth fits its role as a command-line filesystem utility with conservative defaults but powerful destructive options for expert use.

### How it is used

jdupes scans one or more directories for byte-identical files and can print match sets, recurse through trees, delete duplicates, create hard links or symlinks, summarize duplicates, emit JSON, use a hash database, and perform copy-on-write deduplication where supported. The README explicitly warns that similar-file matching is outside its scope.

### Why package nerds care

jdupes matters to package nerds because it is a classic fork story with measurable command-line utility: a small C tool outgrew its parent by focusing on speed, safety checks, portability, and filesystem-specific actions. It is also a reminder that package availability can make a fork the practical default even when the original tool remains known.

### Timeline

- 1999: The author history describes fdupes as present since at least this year.
- 2014: Initial fdupes patch work began during the last week of December.
- 2015: fdupes-jody accumulated portability, performance, and deduplication features.
- 2015: fdupes-jody 2.2 was renamed to jdupes 1.0 on December 23.
- 2023: The project migration to Codeberg was announced.

### Related projects

- Related projects include fdupes, the parent project; dupd and fclones, which the author discusses as competing duplicate finders; and libjodycode, a shared library factored from code that had been reused across jdupes and other Bruchon projects.

### Sources

- <https://codeberg.org/jbruchon/jdupes>
- <https://codeberg.org/jbruchon/jdupes/src/branch/master/README.md>
- <https://formulae.brew.sh/formula/jdupes>
- <https://www.jdupes.com/2023/08/23/the-history-of-jdupes-why-its-called-that-and-where-it-came-from/>
- <https://www.jdupes.com/2023/10/05/news-github-is-out-codeberg-is-in/>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** jdupes
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Debian apt - jdupes - 1.28.0-1+deb13u1: normalized package name match | Debian stable package indexes: jdupes from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | identify and delete or link duplicate files | https://www.jdupes.com/
- Nix - jdupes: normalized package name match | nixpkgs package indexes: pkgs/by-name/jd/jdupes/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - jdupes - 1.27.3-5build1: normalized package name match | Ubuntu 24.04 LTS package indexes: jdupes from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | identify and delete or link duplicate files | https://www.jdupes.com/
- apk - jdupes - 1.31.1-r0: normalized package name match | Alpine Linux edge package indexes: jdupes from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | identifying and taking actions upon duplicate files | https://codeberg.org/jbruchon/jdupes
- apk - jdupes-doc - 1.31.1-r0: normalized package name match | Alpine Linux edge package indexes: jdupes-doc from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | identifying and taking actions upon duplicate files (documentation) | https://codeberg.org/jbruchon/jdupes
- dnf - jdupes - 1.31.1-1.fc45: normalized package name match | Fedora Rawhide package metadata: jdupes from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Duplicate file finder and an enhanced fork of 'fdupes' | https://codeberg.org/jbruchon/jdupes
- zypper - jdupes - 1.30.0-1.3: normalized package name match | openSUSE Tumbleweed package metadata: jdupes from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | A powerful duplicate file finder and an enhanced fork of 'fdupes' | https://codeberg.org/jbruchon/jdupes
- MacPorts - jdupes: normalized package name match | MacPorts ports tree: sysutils/jdupes/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Scoop - main/jdupes: normalized package name match | Scoop official bucket manifest trees: bucket/jdupes.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Matched curated package taxonomy and local package facts.
- [fdupes](https://www.automicvault.com/pkg/brew/fdupes/) - Shares av.db curated category or tags: cli, deduplication, duplicate-files, file-management, filesystem.
- [periscope](https://www.automicvault.com/pkg/brew/periscope/) - Shares av.db curated category or tags: cli, deduplication, duplicate-files, file-management, filesystem.
- [rmlint](https://www.automicvault.com/pkg/brew/rmlint/) - Shares av.db curated category or tags: cli, deduplication, duplicate-files, file-management, filesystem.
- [ddh](https://www.automicvault.com/pkg/brew/ddh/) - Shares av.db curated category or tags: cli, deduplication, duplicate-files, file-management, system.
- [czkawka](https://www.automicvault.com/pkg/brew/czkawka/) - Shares av.db curated category or tags: cli, duplicate-files, file-management, system.
- [duff](https://www.automicvault.com/pkg/brew/duff/) - Shares av.db curated category or tags: cli, deduplication, duplicate-files, filesystem, system.
- [dupseek](https://www.automicvault.com/pkg/brew/dupseek/) - Shares av.db curated category or tags: cli, duplicate-files, file-management, system.
- [dust](https://www.automicvault.com/pkg/brew/dust/) - Shares av.db curated category or tags: cli, file-management, filesystem, system.

## Combined YAML source

View the package source record on GitHub. [combined/jdupes.yml](https://github.com/automic-vault/db/blob/main/combined/jdupes.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
