1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| --delete
This tells rsync to delete extraneous files from the receiving side (ones that arent on the sending side), but only for the directories
that are being synchronized. You must have asked rsync to send the whole directory (e.g. "dir" or "dir/") without using a wildcard for
the directorys contents (e.g. "dir/*") since the wildcard is expanded by the shell and rsync thus gets a request to transfer individual
files, not the files parent directory. Files that are excluded from the transfer are also excluded from being deleted unless you use
the --delete-excluded option or mark the rules as only matching on the sending side (see the include/exclude modifiers in the FILTER
RULES section).
Prior to rsync 2.6.7, this option would have no effect unless --recursive was enabled. Beginning with 2.6.7, deletions will also occur
when --dirs (-d) is enabled, but only for directories whose contents are being copied.
This option can be dangerous if used incorrectly! It is a very good idea to first try a run using the --dry-run option (-n) 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 errors) on the sending side from causing a massive deletion of files on the destina‐
tion. You can override this with the --ignore-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,
and 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 before 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 trans‐
fer possible. However, it does introduce a delay before the start of the transfer, and this delay might cause the transfer 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 incrementally 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 dele‐
tions 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-deletion.
--delete-delay
Request that the file-deletions on the receiving side be computed during the transfer (like --delete-during), and then removed after 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 shouldnt 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 after the transfer has completed. This is useful if you are sending 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 that requires rsync to scan all the files in the
transfer into memory at once (see --recursive). See --delete (which is implied) for more details on file-deletion.
--delete-excluded
In addition to deleting the files on the receiving side that are not on the sending side, this tells rsync to also delete any files on
the receiving side that are excluded (see --exclude). See the FILTER RULES section for a way to make individual exclusions behave this
way on the receiver, and for a way to protect files from --delete-excluded. See --delete (which is implied) for more details on
file-deletion. |
Partager