Это скопирует каталог "foo" с локального хоста в "bar" удаленного хоста.
Здесь -r - рекурсивная копия целых каталогов.
Вы также можете использовать rcp с похожим синтаксисом. Единственное различие между ними заключается в том, что scp использует безопасную оболочку, а rcp использует удаленную оболочку.
BTW Вы упомянули ошибку "Не удалось выполнить канонизацию", если сервер sftp не сможет получить доступ к файлу/каталогу, указанному в команде.
Ответ 2
Для людей, которые действительно хотят прямого ответа на этот вопрос (вместо того, чтобы говорить, чтобы использовать что-то другое, кроме sftp)...
put -r local/path/to/directoryName
Загруженный каталог должен уже существовать в рабочем каталоге на сервере, поэтому вам может понадобиться его создать вначале.
mkdir directoryName
Ответ 3
sftp> mkdir source
sftp> put -r source
Uploading source/ to /home/myself/source
Entering source/
source/file1
source/file2
Ответ 4
Используйте scp вместо этого. Он также использует SSH и может легко обрабатывать рекурсию.