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

16,853

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.

Share:
16,853

Related videos on Youtube

dragosrsupercool
Author by

dragosrsupercool

Updated on September 18, 2022

Comments

  • dragosrsupercool
    dragosrsupercool almost 2 years

    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?