Backing up data with rsync

I recently discovered a tool which turned out to be useful for backing up my local folders, namely: rsync. It’s a straightforward command-line utility that makes it really easy to maintain a mirror of local data on any distant support. Basic usage for this purpose is:

$ rsync -auvz --delete ./local-folder/ /mnt/remote-folder/


  • -a stands for "archive" mode (preserve permissions, dates, etc.),
  • -u stands for "update" only, i.e. don’t re-send or overwrite newer files,
  • -v stands for "verbose", so we can see a list of files being processed,
  • -z enables file compression for faster transfers,
  • --delete means we delete files that don’t exist any more in the local folder.

The verbose mode enabled by -v is not necessary depending on your use case. These other parameters can also come in handy:

  • --exclude can be used to specify files or filename patterns to ignore,
  • --progress displays a progression bar, e.g. to check that a big file transfer is not hanging.

Check out man rsync for more details and options.

Trailing slashes

The only thing to be careful about with rsync is the addition, or not, of a trailing slash. If there is no trailing slash, the corresponding object is treated as a target, while if there is a trailing slash, the corresponding object is treated as a directory containing the target files. It's clearer with an example: suppose we have a directory foo containing the file README, and we want to sync it to a directory bar. If we do:

$ rsync -auvz ./foo ./bar/

Then foo will be copied to the target location bar/, and we will end up with the following file tree:


On the contrary, if we do:

$ rsync -auvz ./foo/ ./bar/

Then the content of foo is synced with the content of bar, and we get:


So, make sure that the source and destination folders are consistent trailing-slash-wise.


There are no comments yet. Feel free to leave a reply using the form below.

Post a comment

You can use Markdown with $\LaTeX$ formulas in your comment.

You agree to the publication of your comment on this page under the CC BY 4.0 license.

Your email address will not be published.

© Stéphane Caron — All content on this website is under the CC BY 4.0 license.