rsync, бросающий mkdir: не может создать каталог '/data/dir_1/dir_2/dir_3 / ’: Никакой такой файл или каталог

Я смонтировал диск в /data. Это пусто в данный момент.

Мне нужно rsync работать mkdir -p чем mkdir поскольку файл I должен быть в на уровне 4 т.е. /data/dir_1/dir_2/dir_3/filename когда dir_1, dir_2 и dir_3 не делает существует.

Если я создаю необходимые подкаталоги вручную, я могу выполнить rsync, использующий после команды:

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

Но если я не создаю подкаталоги, эта команда бросает ошибку:

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

Я пытался гуглить, читая страницу справочника rsync, которую попробовали использовать -r -R но не мог заставить его работать.

Может rsync выполните что-то как mkdir -p или это из его объема?

3
задан 14 December 2014 в 01:48

2 ответа

rsync команда не создает дерево каталогов, таким образом, можно сделать, это работает:

 mkdir -p /data/dir_1/dir_2/dir_3

прежде rsync команда или использование - rsync-путь опции:

- rsync-path=PROGRAM Использование это для определения, какая программа должна быть запущена на удаленной машине для запущения rsync.

Ваша команда должна быть:

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

Вот полезное ссылка .

5
ответ дан 17 November 2019 в 09:58

Более короткий способ создания путей назначения rsync в Linux — использование специальной переменной '$_'. (Я думаю, но не могу подтвердить, что это то же самое и в OSX).

'$_' содержит значение последнего аргумента предыдущей выполненной команды. Таким образом, на вопрос можно ответить так:

mkdir -p /data/dir_1/dir_2/dir_3 && rsync -avz source_directory/ $_

0
ответ дан 11 May 2020 в 20:32

Другие вопросы по тегам:

Похожие вопросы: