Как скопировать файл с пробелами удаленно, используя sftp

1

Я пытаюсь скопировать файл из windows 7 в linux debian, используя SFTP. Имя файла - ba ck.bak.

Я использую SFTP для удаленного размещения файла через командную строку Windows. Если имя файла - back.bak, то команда выполняется успешно.

sftp> sftpc root@xxx.xxx.xxx.xxx:xx -pw=XXXXX -cmd="put back.bak /tmp"

но если имя файла ba ck.bak , то есть с пробелами происходит ошибка, я пытался использовать

-cmd="put 'ba ck.bak' /tmp"

но не работает

Я использую этот файл в пакетном файле Windows, поэтому я не могу выполнить его, войдя в сессию sftp и выполнив там команду. Я также могу выполнить эти команды через файл оболочки, но я не хотел бы каждый раз создавать новый файл.

Мастер Шеф
источник

Ответы:

1

Хорошо, я получил ответ самостоятельно. Вместо поиска по всему интернету я проверил справку по команде и получил ответ в примерах:

sftpc root@xxx.xxx.xxx.xxx:xx -pw=XXXXX -cmd="put \"ba ck.bak\" /tmp"

Пришлось сбежать от кутов.

Мастер Шеф
источник
0

Вы должны отменить эти пробелы, используя '\'. Так что ваша команда будет,

sftp> sftpc root@xxx.xxx.xxx.xxx:xx -pw=XXXXX -cmd="put ba\ ck.bak /tmp"

Это заставит оболочку не видеть пространство в имени файла.

dtigue
источник
Извините, но это не работает, как ожидалось. Заканчивается с «Неверная опция команды: / tmp»
Мастер Чиф