В чем причина ошибки "Невозможно канонизировать: нет такого файла или каталога" в SFTP?

Я пытаюсь использовать SFTP для загрузки всего каталога на удаленный хост, но у меня есть ошибка. (Я знаю, что SCP работает, но я действительно хочу выяснить проблему SFTP.)

Я использовал команду, как показано ниже: (echo "put -r LargeFile/"; echo quit)|sftp -vb - [email protected]:TEST/

Но я получил ошибку "Не могу canonicalise: Нет такого файла или каталога" "Невозможно canonicalise путь" /home/s 1238262/TEST/LargeFile "

Я думал, что это вызвано правами доступа. Итак, я открыл SFTP-соединение с удаленным хостом в интерактивном режиме и попытался создать новый каталог "LargeFile" в TEST/. И мне это удалось. Затем я использовал ту же команду, что и выше, для загрузки всего каталога "LargeFile". Я также преуспел. Подкаталоги в LargeFile автоматически создавались или копировались.

Итак, я смущен. Кажется, что в неинтерактивном режиме невозможно создать каталог LargeFile/. Что не так с ним или с моей командой?

Ответ 1

С помощью SFTP вы можете копировать только в том случае, если каталог существует. Так

> mkdir LargeFile
> put -r path_to_large_file/LargeFile

То же, что советы в ссылке от @Vidhuran, но это должно сэкономить вам некоторое чтение.

Ответ 3

Самый простой способ для меня состоял в том, чтобы закрепить мою папку на локальном LargeFile.zip и просто put LargeFile.zip

zip -r LargeFile.zip LargeFile
sftp www.mywebserver.com (or ip of the webserver)
put LargeFile.zip (it will be on your remote server local directory)
unzip Largefile.zip

Ответ 4

Лучше всего использовать scp.

scp -r LargeFile/"; echo quit)|sftp -vb - [email protected]:TEST/

Ответ 5

Если вы используете Ubuntu 14.04, у sftp есть ошибка. Если вы добавили '/' к имени файла, вы получите сообщение Не удалось выполнить канонизацию: Ошибка.

Например:

sftp > cd my_inbox/## даст вам сообщение об ошибке

sftp > cd my_inbox ## НЕ даст вам ошибку

Обратите внимание, что в правильном запросе отсутствует косая черта. Если вы используете клавишу TAB, для автоматического заполнения имен в пути будет отображаться передняя косая черта.