psftp put вызывает ошибку <dir>: открыт для записи: ошибка, если имя файла не указано в месте назначения - PullRequest
0 голосов
/ 05 июня 2018

Я использую команду psftp для загрузки файлов.Я не предоставляю имя файла в месте назначения, предполагая, что файл будет скопирован с тем же именем.Вот справочная страница команды put

psftp> help put
put [ -r ] [ -- ] <filename> [ <remote-filename> ]
Uploads a file to the server and stores it there under
the same name, or under a different one if you supply the
argument <remote-filename>.
If -r specified, recursively store a directory.

Если я пытаюсь использовать PUT без имени файла в месте назначения, psftp выдает ошибку , открытую для записи: сбой

psftp> open user@host
Using username "user".
Remote working directory is /
psftp> put <file_name> ./<dir>/
/<dir>: open for write: failure

Принимая во внимание, что если я предоставлю имя файла в месте назначения, оно будет работать

psftp> put <file_name> ./<dir>/<file_name>
local:<file_name> => remote:/<dir>/<file_name>

Почему для команды PUT требуется имя файла в месте назначения?

1 Ответ

0 голосов
/ 06 июня 2018

Что означает справочная страница, что весь аргумент <remote-filename> является необязательным, а не часть имени аргумента.

Таким образом, вы можете сделать это

put <file_name>

Он загружает файл втекущий удаленный рабочий каталог под тем же именем файла.


Но вы не можете сделать это:

put <file_name> ./<dir>/

Вы можете сделать это, хотя:

cd ./<dir>
put <file_name>
...