DOVEADM-DEDUPLICATE(1) - phpMan

DOVEADM-DEDUPLICATE(1)              Dovecot             DOVEADM-DEDUPLICATE(1)
NAME
       doveadm-deduplicate - Expunge duplicate messages
SYNOPSIS
       doveadm  [GLOBAL  OPTIONS]  deduplicate [-u user | -A | -F file | --no-
       userdb-lookup] [-S socket_path] [-m] search_query
DESCRIPTION
       This command is used  to  expunge  duplicated  messages  in  mailboxes.
       doveadm  deduplicate  is  mainly  useful  to revert some (more or less)
       accidental duplication of messages, e.g. after doveadm copy or  doveadm
       import.  doveadm(1) will delete the newest duplicated messages from the
       mailbox and keep the oldest.
       Deduplication across multiple mailboxes is not supported.
GLOBAL OPTIONS
       Global doveadm(1) options:
       -D
           Enables verbosity and debug messages.
       -O
           Do not read any config file, just use defaults.  The  dovecot_stor-
           age_version  setting  defaults  to  the  latest version, but can be
           overridden with -o.
       -k
           Preserve entire environment for doveadm, not  just  import_environ-
           ment setting.
       -v
           Enables verbosity, including progress counter.
       -i instance-name
           If  using  multiple Dovecot instances, choose the config file based
           on this instance name.
           See instance_name setting for more information.
       -c config-file
           Read configuration from the given config-file. By default it  first
           reads  config  socket,  and  then  falls back to /etc/dovecot/dove-
           cot.conf. You can also point this to config socket of some instance
           running compatible version.
       -o setting=value
           Overrides  the configuration setting from /etc/dovecot/dovecot.conf
           and from the userdb with the given value. In order to override mul-
           tiple settings, the -o option may be specified multiple times.
OPTIONS
       -A
           If  the -A option is present, the command will be performed for all
           users. Using this option in  combination  with  system  users  from
           userdb  { driver = passwd } is not recommended, because it contains
           also users with a lower  UID  than  the  one  configured  with  the
           first_valid_uid setting.
           When   the   SQL   userdb  module  is  used,  make  sure  that  the
           userdb_sql_iterate_query setting setting matches your database lay-
           out.
           When using the LDAP userdb module, make sure that the userdb_fields
           setting and userdb_ldap_iterate_fields setting settings match  your
           LDAP  schema.  Otherwise  doveadm(1) will be unable to iterate over
           all users.
       -F file
           Execute the command for all the users in the file. This is  similar
           to the -A option, but instead of getting the list of users from the
           userdb, they are read from the given file. The  file  contains  one
           username per line.
       --no-userdb-lookup
           Do  not perform userdb lookup. Use the USER environment variable to
           specify the username.
       -m
           if the -m option is given, doveadm(1) will deduplicate by  Message-
           Id header. By default deduplication will be done by message GUIDs.
       -S socket_path
           The  option's  argument  is either an absolute path to a local UNIX
           domain socket, or a hostname and port (hostname:port), in order  to
           connect a remote host via a TCP socket.
           This  allows  an  administrator to execute doveadm(1) mail commands
           through the given socket.
       -u user/mask
           Run the command only for the given user. It's also possible to  use
           '*' and '?' wildcards (e.g. -u *@example.org).
ARGUMENTS
       search_query
           expunge  duplicates  found  from messages matching the given search
           query. Typically a search query like 'mailbox mailbox_name OR mail-
           box  other_box' will be sufficient. See doveadm-search-query(7) for
           details.
EXAMPLE
       This example shows how to list and expunge duplicate  messages  from  a
       mailbox.
         doveadm -f table fetch -u jane 'guid uid' mailbox a_Box | sort
         guid                             uid
         8aad0f0a30169f4bea620000ca356bad 18751
         8aad0f0a30169f4bea620000ca356bad 18756
         923e301ab9219b4b4f440000ca356bad 18748
         923e301ab9219b4b4f440000ca356bad 18753
         doveadm deduplicate -u jane mailbox a_Box
         doveadm -f table fetch -u jane 'guid uid' mailbox a_Box | sort
         guid                             uid
         8aad0f0a30169f4bea620000ca356bad 18751
         923e301ab9219b4b4f440000ca356bad 18748
         a7999e1530739c4bd26d0000ca356bad 18749
REPORTING BUGS
       Report  bugs, including doveconf -n output, to the Dovecot Mailing List
       <dovecot AT dovecot.org>. Information about reporting  bugs  is  available
       at: <https://dovecot.org/bugreport.html>;
SEE ALSO
       doveadm(1), doveadm-import(1)
e5ac02a                            May 2026             DOVEADM-DEDUPLICATE(1)