good idea to first try a run using the --dry‐run (-n) option to
see what files are going to be deleted.
If the sending side detects any I/O errors, then the deletion of
any files at the destination will be automatically disabled.
This is to prevent temporary filesystem failures (such as NFS er‐
rors) on the sending side from causing a massive deletion of
files on the destination. You can override this with the --ig‐
nore‐errors option.
The --delete option may be combined with one of the --delete‐WHEN
options without conflict, as well as --delete‐excluded. However,
if none of the --delete‐WHEN options are specified, rsync will
choose the --delete‐during algorithm when talking to rsync 3.0.0
or newer, or the --delete‐before algorithm when talking to an
older rsync. See also --delete‐delay and --delete‐after.
--delete‐before
Request that the file‐deletions on the receiving side be done be‐
fore the transfer starts. See --delete (which is implied) for
more details on file‐deletion.
Deleting before the transfer is helpful if the filesystem is
tight for space and removing extraneous files would help to make
the transfer possible. However, it does introduce a delay before
the start of the transfer, and this delay might cause the trans‐
fer to timeout (if --timeout was specified). It also forces
rsync to use the old, non‐incremental recursion algorithm that
requires rsync to scan all the files in the transfer into memory
at once (see --recursive).
--delete‐during, --del
Request that the file‐deletions on the receiving side be done in‐
crementally as the transfer happens. The per‐directory delete
scan is done right before each directory is checked for updates,
so it behaves like a more efficient --delete‐before, including
doing the deletions prior to any per‐directory filter files being
updated. This option was first added in rsync version 2.6.4.
See --delete (which is implied) for more details on file‐dele‐
tion.
--delete‐delay
Request that the file‐deletions on the receiving side be computed
during the transfer (like --delete‐during), and then removed af‐
ter the transfer completes. This is useful when combined with
--delay‐updates and/or --fuzzy, and is more efficient than using
--delete‐after (but can behave differently, since --delete‐after
computes the deletions in a separate pass after all updates are
done). If the number of removed files overflows an internal
buffer, a temporary file will be created on the receiving side to
hold the names (it is removed while open, so you shouldn’t see it
during the transfer). If the creation of the temporary file
fails, rsync will try to fall back to using --delete‐after (which
it cannot do if --recursive is doing an incremental scan). See
--delete (which is implied) for more details on file‐deletion.
--delete‐after
Request that the file‐deletions on the receiving side be done af‐
ter the transfer has completed. This is useful if you are send‐
ing new per‐directory merge files as a part of the transfer and
you want their exclusions to take effect for the delete phase of
the current transfer. It also forces rsync to use the old, non‐
incremental recursion algorithm