it-swarm-ru.tech

Как мне получить весь каталог в sftp?

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

get [directory]

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

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

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

181
Matthew

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

get -r *
255
mani-fresh

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

scp -r [email protected]:/home/mpirocch/Documents Documents
53
Cristian Ciupitu

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

lftp sftp://[email protected]

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

mirror

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

зеркало [ОПЦИИ] [источник  [цель]]

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

mirror -R

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

40
bshanks

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

15
Ryan Thompson

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

lftp sftp://user:[email protected]: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

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

14
nwgat

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

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

sftp> cd dir_to_get
sftp> mget *

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

13
Ken Keenan
get -r [directory]

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

9
drkvogel

Как с cp:

scp -rp [email protected]:/path/to/dir dir

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

4
Aziraphale

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

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

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

Шаг 1. sftp remoteuser @ ip

Шаг 2. CD/VAR/TMP

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

Шаг 3. Жк/тм/дист

Шаг 4. mget *

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

Шаг 6. Mget *

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

$ ls
Audio.jar  lib  README.TXT
0
YumYumYum