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":


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


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/.

  • 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. – markling Nov 12 '19 at 11:15

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:


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:


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

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.