Ubuntu: rsync throwing mkdir: cannot create directory ‘/data/dir_1/dir_2/dir_3/’: No such file or directory


I mounted a disk at /data. This is empty at the moment.

I need rsync to perform mkdir -p than mkdir as the file I needs to be at at level 4 i.e. /data/dir_1/dir_2/dir_3/filename when dir_1, dir_2 and dir_3 doesn't exists.

If I create the needed sub-directories manually I am able to perform rsync using following command:

rsync -avz source_diretory/ /data/dir_1/dir_2/dir_3  

But if I don't create the sub directories, this command throws an error:

mkdir: cannot create directory ‘/data/dir_1/dir_2/dir_3/’: No such file or directory  

I tried Googling, reading rsync's man page, tried using -r -R but could not make it work.

Can rsync perform something like mkdir -p or is that out of its scope?


rsync command doesn't create directory tree, so you can do this by perform:

 mkdir -p /data/dir_1/dir_2/dir_3  

before rsync command or use --rsync-path options:

--rsync-path=PROGRAM Use this to specify what program is to be run on the remote machine to start-up rsync.

Your command should be:

 rsync -avz source_diretory/ --rsync-path="mkdir -p /data/dir_1/dir_2/dir_3 && rsync" /data/dir_1/dir_2/dir_3  

Here is a useful link.

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »