2009-09-12 21:39:59 +0000 2009-09-12 21:39:59 +0000
201
201

Как получить целую директорию в sftp?

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

get [directory]

, это даст мне такую ошибку:

Cannot download non-regular file: /home/mpirocch/Documents

get -R тоже не работает.

Ответы (9)

282
282
282
2010-11-29 21:38:08 +0000

Используйте флаг -r (рекурсивный):

get -r *
```.
52
52
52
2009-09-12 21:51:06 +0000

Использование:

scp -r mpirocch@my-server:/home/mpirocch/Documents Documents
42
42
42
2010-04-08 13:54:47 +0000

Используйте lftp :

lftp sftp://user@host

Затем, в пределах lftp, cd в каталог, который вы хотите скопировать, и используйте команду mirror для рекурсивной загрузки выбранного каталога, как это:

mirror

Эта команда принимает опции и аргументы:

mirror [_OPTIONS_] [_source_ [_target_]]

Например, опция -R (или --reverse) вызовет загрузку локального дерева каталогов в удалённый каталог:

mirror -R

См. страницу man lftp(1) на сайте проекта или в Debian. org для других команд и опций.

17
17
17
2014-03-10 01:18:10 +0000

ну это маленькое руководство должно помочь, зеркалирование удаленного сервера в локальную папку с lftp

lftp sftp://user:password@server.org:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'

sftp:// = использует SFTP протокол - mirror = режим зеркалирования - verbose = показывает загружаемые файлы - use-pget-n = количество сегментов, действительно полезно для ускорения больших файлов - parallel = скачивает файлы умножения в то же время

если вы хотите скачать файлы в параллельном переключении use-pget-n=8 с --parallel=8

надеюсь, что это поможет любому нуждающемуся в зеркальном отображении удаленной папки в локальную папку

15
15
15
2009-09-13 03:11:22 +0000

Не используйте sftp-программу напрямую, если можете найти что-то получше. Для Linux многие файловые менеджеры (по крайней мере, Nautilus и Dolphin, GNOME и KDE) поддерживают sftp нативно, и всегда есть sshfs. Для окон есть WinSCP, и, вероятно, другие . Смысл всего этого в том, чтобы позволить вам получить доступ к файлам через sftp, как если бы они были на обычном файловом сервере, так что вам не нужно беспокоиться о том, что вы получаете доступ к ним через sftp.

14
14
14
2009-09-12 22:34:42 +0000

Попробуйте mget вместо get.

Пояснение: mget ** будет работать**, если вы находитесь внутри каталога, который хотите скопировать; если вы сделаете что-то подобное:

sftp> cd dir_to_get
sftp> mget *

, то получите все файлы в этом каталоге. Однако, он будет not рекурсивно получать содержимое любых подкаталогов.

10
10
10
2012-03-06 16:56:09 +0000
get -r [directory]

получает [directory] и все под ним, где r означает рекурсивный. Я нашел это, просто набрав help из sftp.

4
4
4
2013-01-11 09:50:29 +0000

Как и в случае с cp:

scp -rp user@host:/path/to/dir dir

Вышеуказанное сохранит время и режимы исходных файлов и подкаталогов. Это особенно полезно при извлечении резервных копий.

0
0
0
2011-09-28 08:39:19 +0000

У меня есть дистрибутивная папка Java на удаленном сервере, где у меня есть следующее дерево:

- dist
--- Audio.jar
--- README
--- lib
----- lib.jar

Goal: Я хочу использовать SFTP? И поместите их в /tmp/<>

Шаг 1. sftp remoteuser@ip

Шаг 2. cd /var/tmp

Шаг 2. lmkdir /tmp/dist; lmkdir /tmp/dist/lib

Шаг 3. lcd /tmp/dist

Шаг 4. mget *

Шаг 5. lcd /tmp/dist/lib

Шаг 6. mget *

Шаг 7. наконец, у меня есть моя цель

$ ls
Audio.jar lib README.TXT
```.

Похожие вопросы

6
10
5
37
4