FDUPES(1)

๐Ÿ“ฆ
version 2.4.0 ยท 5 versions
, in alpine 3.24, epel 10, epel 9, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, ubuntu resolute, ubuntu stonking

๐Ÿ’– FDUPES ๐Ÿ’–

okay bestie, so this is fdupes โ€” it lives in the General Commands Manual (that's section 1 of the manual, iykyk), and it is literally the girl who finds your duplicate files for you. no cap. she's iconic, she's thorough, and she will absolutely snitch on that one folder where you saved the same pic four times. ๐Ÿ•ต๏ธโ€โ™€๏ธโœจ


โœจ NAME โœจ

fdupes โ€” finds duplicate files in a given set of directories ๐Ÿซถ


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

fdupes [ options ] DIRECTORY ...

๐ŸŒธ DESCRIPTION ๐ŸŒธ

So basically, it searches the path you give it for duplicate files. And the way it does that?? She compares file sizes and MD5 signatures first, and then does a whole byte-by-byte comparison on top of that, just to be absolutely sure. the way she double-checks everything... main character energy fr fr ๐Ÿ’…


โœจ OPTIONS โœจ

  • -r, --recurse โ€” for every directory you hand her, she follows the subdirectories she runs into inside it. go deeper. always. ๐Ÿ’œ
  • -R, --recurse: โ€” okay so this one is sneaky: for each directory given after this option, she follows subdirectories encountered within. (note the : at the end of the option, bestie โ€” it MATTERS. there's a whole Examples section below explaining it, don't worry ๐Ÿฅฐ)
  • -s, --symlinks โ€” follow symlinked directories. yes girl, chase them.
  • -H, --hardlinks โ€” normally, when two or more files point to the same disk area, she treats them as non-duplicates. this option changes that behavior. ๐Ÿฆ‹
  • -G, --minsize=SIZE โ€” only consider files greater than or equal to SIZE in bytes. tiny files, you are dismissed. ๐Ÿ™ˆ
  • -L, --maxsize=SIZE โ€” only consider files less than or equal to SIZE in bytes. big files, also dismissed. girlboss with boundaries.
  • -c, --cache โ€” speeds up file comparisons by keeping track of their signatures in a database. you can pass extra parameters with one or more cache parameters (the ones listed right below, mwah). โš ๏ธ please note: this option may not be available on some systems. check before you commit, bestie.
  • -x cache.OPTION โ€” supply an optional cache parameter, where OPTION is one of the keywords below, and you can stack multiple options by passing 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 used without supplying a DIRECTORY argument, and they'll take effect even if readonly is also specified. the order of operations is always: clear, prune, update signatures (unless readonly), and vacuum. periodt. ๐Ÿ’…

  • -n, --noempty โ€” exclude zero-length files from consideration. sorry empty files, not today. ๐Ÿ’€
  • -A, --nohidden โ€” exclude hidden files from consideration. if it's hiding, we don't see it. ๐Ÿ™ˆโœจ
  • -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 info quickly, skipping the slower byte-for-byte match confirmation. speed. ๐Ÿƒโ€โ™€๏ธ
  • -q, --quiet โ€” hide the progress indicator. shhh. ๐Ÿคซ
  • -d, --delete โ€” prompts the user for files to preserve, and deletes all the others. โš ๏ธ see the CAVEATS section below, this one is not a joke.
  • -D, --deferconfirmation โ€” in interactive mode, defers the byte-for-byte confirmation of duplicates until just before file deletion. like, right before. ๐Ÿ’…
  • -P, --plain โ€” with --delete, uses a line-based prompt (like the older versions of fdupes) instead of the new screen-mode interface. and on installations where the screen-mode interface isn't supported, fdupes will just default to a line-based prompt anyway. no drama. ๐ŸŽ€
  • -N, --noprompt โ€” when used together with --delete, preserves the first file in each set of duplicates and deletes the others, without ever prompting the user. bold. fearless. slightly terrifying.
  • -I, --immediate โ€” deletes duplicates as they are encountered, without grouping into sets. this implies --noprompt. ๐Ÿ”ฅ
  • -p, --permissions โ€” don't consider files with different owner/group or permission bits as duplicates. different permissions = different vibes = not the same file, bestie. ๐Ÿ‘‘
  • -o, --order=WORD โ€” orders 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. flip it. ๐Ÿ”„
  • -l, --log=LOGFILE โ€” logs file deletion choices to LOGFILE.
  • -v, --version โ€” displays fdupes version.
  • -h, --help โ€” displays help.

๐ŸŒˆ NOTES ๐ŸŒˆ

Unless -1 or --sameline is specified, duplicate files get listed together in groups, each file displayed on a separate line. and then the groups are separated from each other by blank lines. so organized. so aesthetic. ๐ŸŒธ

When -1 or --sameline is specified, spaces and backslash characters (\) appearing in a filename are preceded by a backslash character. she's escaping things, it's a whole thing, iykyk. โœจ


๐Ÿ’… EXAMPLES ๐Ÿ’…

fdupes a --recurse: b

Will follow subdirectories under b, but not those under a. see?? the colon matters. told you. ๐Ÿ˜ค

fdupes a --recurse b

Will follow subdirectories under both a and b. slay. ๐ŸŽ‰


๐Ÿšจ CAVEATS ๐Ÿšจ

When using -d or --delete, care should be taken to insure against accidental data loss. fr fr. this is the serious one. ๐Ÿ˜ญ

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" (which is... the file itself!). not her being her own twin ๐Ÿ’€


๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

Adrian Lopez <adrianlopezroche@gmail.com> โ€” thank you for the icon, we are obsessed ๐Ÿซถ


okay bestie that's the whole page, every flag, every caveat, every little colon, all of it. ๐Ÿ’– the footer on this one just says FDUPES(1) again and that it's from the General Commands Manual, so likeโ€ฆ we've come full circle, and honestly? iconic. โœจ๐ŸŒธ๐Ÿ’…

๐Ÿ“ฆ where this page comes from