           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
            DIRED-DUPLICATES - FIND DUPLICATE FILES ON LOCAL
                         AND REMOTE FILESYSTEMS
           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━





1 Description
═════════════

  This Emacs package helps to find duplicate files on local and remote
  filesystems.  It is similar to the fdupes command-line utility but
  written in Emacs Lisp and should also work on every remote filesystem
  that TRAMP supports and where executable commands can be called
  remotely.  The most common use case for this is probably finding and
  deleting unneeded duplicate files.

  dired-duplicates works by first searching files of the same size, then
  invoking the calculation of the checksum for these files, and finally
  presenting the grouped results in a Dired buffer that the user can
  work with similarly to a regular Dired buffer.  It might be even
  possible to combine this with other Dired extension packages like
  `dired-narrow' for increased productivity.

  By default, the results will be grouped visually by separating them
  using empty lines, but this grouping can also be deactivated by
  setting the custom variable `dired-duplicates-separate-result' to
  `nil'.


2 Requirements
══════════════

  For performance reasons, a checksum program like `md5' or `sha256sum'
  will be used for generating checksums of file contents and therefore
  needs to be available and executable on the local and/or remote hosts.
  That way, no files need to be read over possibly slow networks, thus
  calculating the checksum will be much faster when directly executed on
  remote hosts.  The name of the checksum program can be customized.


3 Installation
══════════════

  The package can be installed from MELPA via the Emacs package manager,
  e.g. `package-install'.  Or you use the following use-package snippet:
  ┌────
  │ (use-package dired-duplicates)
  └────


4 Usage
═══════

  Call `dired-duplicates' interactively and provide one or more
  directories (usually separated by commas) to search in recursively.


5 Configuration
═══════════════

  You can find all available customization options with
  `customize-group', entering `dired-duplicates' for the desired group.
  These options are described extensively there.


6 Known issues and reporting bugs
═════════════════════════════════

6.1 Known issue with completing-multiple-read
─────────────────────────────────────────────

  At the moment, there is a problem in Emacs 28.1 and perhaps other
  versions with `completing-read-multiple' that makes auto-completion
  fail.  When you try to specify more than one directory separated by
  commas (e.g. `/tmp/1,/tmp/2'), an error /may/ occur depending on the
  completing system.  In such a case, you might just do without
  auto-completion and ignore that error, dired-duplicates will still
  function properly if you provide valid directories.


6.2 Reporting bugs
──────────────────

  Just open an issue at the homepage of this project in case you hit an
  error, and provide proper steps to reproduce the problem.


7 License
═════════

  This package is licensed under GPL-3.  See the `LICENSE' file for more
  information.
