---
name: "fdupes"
section: "1"
platform: "linux"
package: "fdupes"
version: "1:2.4.0-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/fdupes"
---

# fdupes(1)

finds duplicate files in a given set of directories

## NAME

fdupes - finds duplicate files in a given set of directories

## SYNOPSIS

**fdupes** \[ *options* \] *DIRECTORY* ...

## DESCRIPTION

Searches the given path for duplicate files. Such files are found by comparing file sizes and MD5 signatures, followed by a  byte-by-byte comparison.

## OPTIONS

- **-r --recurse**

  For every directory given follow subdirectories encountered within.

- **-R --recurse:**

  For each directory given after this option follow subdirectories encountered within (note the ':' at the end of option; see the Examples section below for further explanation).

- **-s --symlinks**

  Follow symlinked directories.

- **-H --hardlinks**

  Normally, when two or more files point to the same disk area they are treated as non-duplicates; this option will change this behavior.

- **-G --minsize=*SIZE***

  Consider only files greater than or equal to SIZE in bytes.

- **-L --maxsize=*SIZE***

  Consider only files less than or equal to SIZE in bytes.

- **-c --cache**

  Speed up file comparisons by keeping track of their signatures in a database; additional parameters may be provided using one or more cache parameters (as indicated below). Please note that this option may not be available on some systems.

- **-x cache.*OPTION***

  Supply an optional cache parameter, where OPTION is one of the keywords below and multiple options may be supplied via successive -x arguments:

    *readonly*\
       read but do not update file signatures

    *prune*\
       look through entire cache and delete orphaned entries

    *clear*\
       clear all entries from cache

    *vacuum*\
       reduce size of DB file, if possible

  The options prune, clear, and vacuum may be employed without supplying a DIRECTORY argument, and will take effect even if readonly is also specified. The order of operations is always clear, prune, update signatures (unless readonly), and vacuum.

- **-n --noempty**

  Exclude zero-length files from consideration.

- **-A --nohidden**

  Exclude hidden files from consideration.

- **-f --omitfirst**

  Omit the first file in each set of matches.

- **-1 --sameline**

  List each set of matches on a single line.

- **-S --size**

  Show size of duplicate files.

- **-t --time**

  Show modification time of duplicate files.

- **-m --summarize**

  Summarize duplicate file information.

- **-M --quicksummary**

  Summarize dupe information quickly, skipping the slower byte-for-byte match confirmation.

- **-q --quiet**

  Hide progress indicator.

- **-d --delete**

  Prompt user for files to preserve, deleting all others (see **CAVEATS** below).

- **-D --deferconfirmation**

  In interactive mode, defer byte-for-byte confirmation of duplicates until just before file deletion.

- **-P --plain**

  With --delete, use a line-based prompt (as with older versions of fdupes) instead of the new screen-mode interface. On installations where the screen-mode interface is not supported, fdupes will default to a line-based prompt.

- **-N --noprompt**

  When used together with --delete, preserve the first file in each set of duplicates and delete the others without prompting the user.

- **-I --immediate**

  Delete duplicates as they are encountered, without grouping into sets; implies --noprompt.

- **-p --permissions**

  Don't consider files with different owner/group or permission bits as duplicates.

- **-o --order=*WORD***

  Order files according to WORD: time - sort by modification time, ctime - sort by status change time, name - sort by filename.

- **-i --reverse**

  Reverse order while sorting.

- **-l --log=*LOGFILE***

  Log file deletion choices to LOGFILE.

- **-v --version**

  Display fdupes version.

- **-h --help**

  Display help.

## NOTES

Unless **-1** or **--sameline** is specified, duplicate files are listed together in groups, each file displayed on a separate line. The groups are then separated from each other by blank lines.

When **-1** or **--sameline** is specified, spaces and backslash characters  (**\\**) appearing in a filename are preceded by a backslash character.

## EXAMPLES

- **fdupes a --recurse: b**

  Will follow subdirectories under b, but not those under a.

- **fdupes a --recurse b**

  Will follow subdirectories under both a and b.

## CAVEATS

When using **-d** or **--delete**, care should be taken to insure against accidental data loss.

When used together with options **-s** or **--symlink**, a user could accidentally preserve a symlink while deleting the file it points to.

Furthermore, when specifying a particular directory more than once, all files within that directory will be listed as their own duplicates, leading to data loss should a user preserve a file without its "duplicate" (the file itself!).

## AUTHOR

Adrian Lopez \<adrianlopezroche@gmail.com\>
