95

When I run this command

rsync -avzp --del -e "ssh -p myport" user@hostname:/var/www/tests /var/www/tests 

files get synchronized but instead of saving files in /var/www/tests, Rsync creates one more directory "tests" inside of existing "tests":

/var/www/tests/tests 

and puts files there. How to tell Rsync not to create a new directory?

2 Answers 2

95

If you don't want another tests directory created, the correct command would be

rsync -avzp --del -e "ssh -p myport" user@hostname:/var/www/tests/ /var/www/tests 

Note the / at the end of user@hostname:/var/www/tests/.

2
  • 1
    beware also of the rsync option -R, if you are having this problem. The very purpose of -R (or --relative) is to recreate the full source directory path at the destination. So it will have the same effect as if you omit the trailing slash. Commented Nov 12, 2019 at 11:15
  • -a already contains -p Commented Apr 1, 2022 at 16:45
42

You need a trailing slash on the source.

Here is the correct command:

rsync -avzp --del -e "ssh -p myport" user@hostname:/var/www/tests/ /var/www/tests 

More Info

Explanation of rsync and trailing slashes:

http://defindit.com/readme_files/rsync_backup.html

Rsync has two major modes of operation. The modes are dependent on the absence or presence of the trailing slash on the source directory.

Another example:

http://www.jveweb.net/en/archives/2010/11/synchronizing-folders-with-rsync.html

...you need to add the trailing slash, otherwise, a folder called Pictures is created inside the Pictures folder that we specify as destination.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.