Rsync по пути SSH с пробелами не работает с кавычками

Я могу к успешно 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/'

Что я могу сделать?

Спасибо.

16
задан 16 March 2015 в 12:17

3 ответа

Подробно останавливаясь на ответе rzr с примером кода и ссылками, просто добавьте -s флаг, заключите пути в кавычки и не волнуйтесь о выходе из пробелов в удаленном пути:

rsync -avzs '/path with spaces/' 'user@remotelocation:/media/another path with/spaces/'

Для ссылки, опции, указанные OP:

  • - a, режим архивирования, равняется-rlptgoD (никакой-H,-A,-X)
    • Включает:
    • - r, - рекурсивный, рекурсивно вызывают в каталоги
    • - l, - ссылки, копируют символьные ссылки как символьные ссылки
    • - p, - перманент, сохраняют полномочия
    • - t, - времена, сохраняют время изменения
    • - g, - группа, сохраняют группу
    • - o, - владелец, сохраняют владельца (только суперпользователь)
    • - устройства, сохраните файлы устройств (только суперпользователь)
    • - экстренное сообщение, сохраните специальные файлы
  • - v, - подробный, увеличивают многословие
  • - z, - сжатие, сжимают данные файла во время передачи

Дополнительному параметру было нужно:

  • - s, - защищают-args, никакое разделение пространства, подстановочные символы только
11
ответ дан 23 November 2019 в 02:33

Необходимо выйти из пробелов и в локальной оболочке и в удаленной оболочке. Попробуйте это:

rsync -avz '/path with spaces/' 'user@remotelocation:/media/another\ path\ with/spaces/'

источника, /path with spaces/ в локальной оболочке можно оставить только через помещение одинарных кавычек вокруг этого т.е. '/path with spaces/'.

, С другой стороны, в случае места назначения, локальной оболочки оставляют путем помещения одинарных кавычек, и пробелов оставляют в удаленной оболочке при помощи символа ESC (\) перед пробелами.

13
ответ дан 23 November 2019 в 02:33

взгляд rsync опция †“защищает-args (-s), никаким дополнительным наклонным чертам не было нужно

1
ответ дан 23 November 2019 в 02:33

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

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