Подтвердить что ты не робот

Как я могу загрузить всю папку, содержащую другие папки, используя sftp на linux?

Я пробовал put -r directory/*, который загружал только файлы, а не папки. Дал мне ошибку, не могу Couldn't canonicalise.

Любая помощь будет принята с благодарностью.

4b9b3361

Ответ 1

Здесь вы можете найти подробное объяснение, как скопировать каталог с помощью scp. В вашем случае это будет что-то вроде:

$ scp -r foo [email protected]:/some/remote/directory/bar

Это скопирует каталог "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 и может легко обрабатывать рекурсию.