Skip to main content
3 of 3
retry is actually more efficient for local copies
Chris Davies
  • 128.3k
  • 16
  • 179
  • 324

Do I use rsync --append for all invocations?

Yes, you would use it each time (the first time there is nothing to append, so it's a no-op; the second and subsequent times it's actioned). But do not use --append at all unless you can guarantee that the source is unchanged from the previous run (if any), because it turns off the checking of what has previously been copied.

Does rsync --append resume for the subsequent invocations… without reading all the already copied data?

Yes, but without rsync --partial would probably have first deleted the target file.

The correct invocation would be something like this:

rsync -a -vi --append --inplace --partial --progress /path/to/source/ /path/to/target 

You could remove --progress if you didn't want to see a progress indicator, and -vi if you are less bothered about a more informational result (you'll still get told if it succeeds or fails). You may see -P used in other situations: this is the same as --partial --progress and can be used for that here too.

  • --append to continue after a restart without checking previously transferred data
  • --partial to keep partially transferred files
  • --inplace to force the update to be in-place

If you are in any doubt at all that the source might have changed since the first attempt at rsync, use the (much) slower --append-verify instead of --append. Or better still, remove the --append flag entirely and let rsync delete the target and start copying it again.

Chris Davies
  • 128.3k
  • 16
  • 179
  • 324