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.
for every directory given follow subdirectories encountered within
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)
follow symlinked directories
normally, when two or more files point to the same disk area they are treated as non-duplicates; this option will change this behavior
consider only files greater than or equal to SIZE
consider only files less than or equal to SIZE
exclude zero-length files from consideration
exclude hidden files from consideration
omit the first file in each set of matches
list each set of matches on a single line
show size of duplicate files
show modification time of duplicate files
summarize duplicate file information
hide progress indicator
prompt user for files to preserve, deleting all others (see CAVEATS below)
with --delete, use line-based prompt (as with older versions of fdupes) instead of screen-mode interface
when used together with --delete, preserve the first file in each set of duplicates and delete the others without prompting the user
delete duplicates as they are encountered, without grouping into sets; implies --noprompt
don’t consider files with different owner/group or permission bits as duplicates
order files according to WORD: time - sort by modification time, ctime - sort by status change time, name - sort by filename
reverse order while sorting
log file deletion choices to LOGFILE
display fdupes version
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 <adrian2 [AT] caribe.net>