Я могу к успешно RSYNC по SSH, пока пути не имеют пробелов в них.
Когда путь имеет пробелы, он не работает. Я попробовал наклонные черты, кавычки и двойные кавычки.
Когда я использую наклонные черты, состояния вывода, что это имеет успех, но я не вижу переданных файлов.
rsync -avz /path\ with\ spaces/ user@remotelocation:/media/another\ path\ with/spaces/
Когда я использую одинарные или двойные кавычки, это говорит мне, что разрешение отклонено после ввода моего пароля
rsync -avz '/path with spaces/' 'user@remotelocation:/media/another path with/spaces/'
Что я могу сделать?
Спасибо.
Подробно останавливаясь на ответе rzr с примером кода и ссылками, просто добавьте -s
флаг, заключите пути в кавычки и не волнуйтесь о выходе из пробелов в удаленном пути:
rsync -avzs '/path with spaces/' 'user@remotelocation:/media/another path with/spaces/'
Для ссылки, опции, указанные OP:
Дополнительному параметру было нужно:
Необходимо выйти из пробелов и в локальной оболочке и в удаленной оболочке. Попробуйте это:
rsync -avz '/path with spaces/' 'user@remotelocation:/media/another\ path\ with/spaces/'
источника, /path with spaces/
в локальной оболочке можно оставить только через помещение одинарных кавычек вокруг этого т.е. '/path with spaces/'
.
, С другой стороны, в случае места назначения, локальной оболочки оставляют путем помещения одинарных кавычек, и пробелов оставляют в удаленной оболочке при помощи символа ESC (\
) перед пробелами.
взгляд rsync опция †“защищает-args (-s), никаким дополнительным наклонным чертам не было нужно