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 и выполнив там команду. Я также могу выполнять эти команды через файл оболочки, но я не хотел бы каждый раз создавать новый файл.

2 ответа2

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"

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .