fdupes - finds duplicate files in a given set of directories



fdupes − finds duplicate files in a given set of directories


fdupes [ options ] DIRECTORY ...


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.


-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

-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

-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 line-based prompt (as with older versions of fdupes) instead of screen-mode interface

-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

displays help


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.


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.


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!).


Adrian Lopez <[email protected]>

Updated 2024-01-29 - jenkler.se | uex.se