73

When backing up with rsync, How do I keep the full directory structure?

For example, the remote server is saturn, and I want to backup saturn's /home/udi/files/pictures to a local directory named backup.

I want to have (locally) backup/home/udi/files/pictures rather than backup/pictures.

91

Use the -R or --relative option to preserve the full path.

17

Another common related use case it to keep a selected part of the directory tree with /./, e.g. if you wanted:

/home/udi/files/pictures

to go to:

backup/files/pictures

you can write:

rsync --relative /home/udi/./files/pictures backup

The magic /./ gets specially parsed by rsync before it passes that path to the system calls, and tells it where to start creating directories from. The /./ means nothing for other POSIX utilities in general, e.g. the path a/./b is the same as a/b in POSIX.

0
2

With the Cygwin Windows rsync, and assuming the remote rsync is pointing to the root, I'd do:

rsync -vtrz --delete server::rsyncid/home/udi/files/pictures /cygdrive/d/backup/home/udi/files

That will put the contents of the remote pictures directory in /backup/home/udi/files/pictures. Presumably the syntax under unix would be similar.

JR

1
  • It is not useful because we need to reproduce the whole directory hierarchy on the local side before executing the rsync command. Apr 2 '12 at 11:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.