--inplace
This option changes how rsync transfers a file when its data needs to be updated: instead of the
default method of creating a new copy of the file and moving it into place when it is complete,
rsync instead writes the updated data directly to the destination file.
This has several effects:
o Hard links are not broken. This means the new data will be visible through other hard
links to the destination file. Moreover, attempts to copy differing source files onto a
multiply-linked destination file will result in a "tug of war" with the destination data
changing back and forth.
o In-use binaries cannot be updated (either the OS will prevent this from happening, or
binaries that attempt to swap-in their data will misbehave or crash).
o The file’s data will be in an inconsistent state during the transfer and will be left that
way if the transfer is interrupted or if an update fails.
o A file that rsync cannot write to cannot be updated. While a super user can update any
file, a normal user needs to be granted write permission for the open of the file for
writing to be successful.
o The efficiency of rsync’s delta-transfer algorithm may be reduced if some data in the
destination file is overwritten before it can be copied to a position later in the file.
This does not apply if you use --backup, since rsync is smart enough to use the backup file
as the basis file for the transfer.
WARNING: you should not use this option to update files that are being accessed by others, so be
careful when choosing to use this for a copy.
This option is useful for transferring large files with block-based changes or appended data, and
also on systems that are disk bound, not network bound. It can also help keep a copy-on-write
filesystem snapshot from diverging the entire contents of a file that only has minor changes.
The option implies --partial (since an interrupted transfer does not delete the file), but
conflicts with --partial-dir and --delay-updates. Prior to rsync 2.6.4 --inplace was also
incompatible with --compare-dest and --link-dest.
|