Как получить полный каталог в sftp?

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

get [directory]

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

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

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

156 голосов | спросил Matthew Pirocchi 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 13 Sep 2009 01:39:59 +0400 2009, 01:39:59

9 ответов


230

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

get -r *
ответил mani-fresh 30 22010vEurope/Moscow11bEurope/MoscowTue, 30 Nov 2010 00:38:08 +0300 2010, 00:38:08
50

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

scp -r [email protected]:/home/mpirocch/Documents Documents
ответил Cristian Ciupitu 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 13 Sep 2009 01:51:06 +0400 2009, 01:51:06
36

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

lftp sftp://[email protected]

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

mirror -R

Или просто загрузить:

mirror

Вы должны cd в каталогах, которые хотите зеркалировать. Работает магически!

ответил bshanks 8 PMpThu, 08 Apr 2010 17:54:47 +040054Thursday 2010, 17:54:47
15

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

ответил Ryan Thompson 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 13 Sep 2009 07:11:22 +0400 2009, 07:11:22
13

Ну, это небольшое руководство должно помочь, зеркалировать удаленный сервер в локальную папку с 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

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

ответил nwgat 10 MaramMon, 10 Mar 2014 05:18:10 +04002014-03-10T05:18:10+04:0005 2014, 05:18:10
12

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

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

sftp> cd dir_to_get
sftp> mget *

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

ответил Ken Keenan 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 13 Sep 2009 02:34:42 +0400 2009, 02:34:42
9
get -r [directory]

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

ответил drkvogel 6 MarpmTue, 06 Mar 2012 20:56:09 +04002012-03-06T20:56:09+04:0008 2012, 20:56:09
4

Как и в cp:

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

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

ответил Aziraphale 11 Jpm1000000pmFri, 11 Jan 2013 13:50:29 +040013 2013, 13:50:29
0

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

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

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

Шаг 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
ответил YumYumYum 28 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 28 Sep 2011 12:39:19 +0400 2011, 12:39:19

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132