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

Como posso obter um directório inteiro em sftp?

Estou apenas a aprender a usar o sftp, e quero copiar um directório do computador remoto para o meu computador local. Se eu tentar

get [directory]

dá-me este erro:

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

get -R também não funciona.

Respostas (9)

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

Utilizar a bandeira -r (recursiva):

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

Utilização:

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

Use lftp :

lftp sftp://user@host

Depois, dentro de lftp, cd para o directório que pretende copiar, e use o comando mirror para descarregar recursivamente o directório seleccionado, como este:

mirror

Este comando aceita opções e argumentos:

mirror [_OPTIONS_] [_source_ [_target_]]

Por exemplo, a opção -R (ou --reverse) fará com que carregue a árvore de directórios local para o directório remoto:

mirror -R

Veja a página de manual lftp(1) no site do projecto ou em Debian. org para outros comandos e opções.

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

bem este pequeno guia deve ajudar, espelhar um servidor remoto para uma pasta local com lftp

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

  • sftp:// = utiliza o protocolo SFTP
  • mirror = modo espelho
  • verbose = mostra os ficheiros que estão a ser descarregados
  • use-pget-n = número de segmentos, realy useful to speed up big files
  • parallel = ficheiros multiplicadores de downloads ao mesmo tempo

se quiser descarregar ficheiros em paralelo mude para use-pget-n=8 com --parallel=8

espero que isto ajude qualquer pessoa que precise de espelhar uma pasta remota para uma pasta local

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

Não utilize o programa sftp directamente se conseguir encontrar algo melhor. Para Linux, muitos gestores de ficheiros (pelo menos o Nautilus e Dolphin, o GNOME e o KDE) suportam sftp nativamente, e há sempre o sshfs. Para windows, há o WinSCP, e provavelmente outros . O objectivo de tudo isto é permitir-lhe aceder a ficheiros sobre sftp como se estivessem num filesytem normal, para que não tenha de se preocupar com o facto de estar a aceder a eles sobre sftp.

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

Experimente mget em vez de get.

Esclarecimento: mget ** irá** funcionar se estiver dentro do directório que pretende copiar; se fizer algo como isto:

sftp> cd dir_to_get
sftp> mget *

irá obter todos os ficheiros desse directório. No entanto, ele não obterá recursivamente o conteúdo de qualquer subdiretório.

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

recebe [directory] e tudo o que está por baixo dele, onde r é sinónimo de recursivo. Encontrei isto apenas ao digitar help de sftp.

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

Tal como com cp:

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

O acima exposto irá preservar os tempos e modos dos ficheiros e subdirectórios originais. Isto é especialmente útil para a recuperação de cópias de segurança.

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

Tenho uma pasta Java dist no servidor remoto, onde tenho a seguinte árvore:

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

Goal é: Quero usar SFTP? E colocá-los em /tmp/<>

Passo 1. sftp remoteuser@ip

Passo 2. cd /var/tmp

Passo 2. lmkdir /tmp/dist; lmkdir /tmp/dist/lib

Passo 3. lcd /tmp/dist

Passo 4. mget *

Passo 5. lcd /tmp/dist/lib

Passo 6. mget *

Passo 7. finalmente tenho o meu objectivo

$ ls
Audio.jar lib README.TXT