Como obter recursivamente uma pasta através de FTP no Linux [fechado]

estou a tentar ftp uma pasta usando o cliente ftp da linha de comandos, mas até agora só fui capaz de usar 'get' para obter ficheiros individuais.

Author: dotancohen, 2008-09-22

12 answers

Você pode contar com o wget que normalmente lida com ftp get corretamente (pelo menos na minha própria experiência). Por exemplo:

wget -r ftp://user:[email protected]/

Também pode utilizar {[4] } que é adequado para espelhar. É actualmente equivalente a -r -N -l inf.

Se tiver alguns caracteres especiais nos detalhes credenciais, poderá especificar os argumentos --user e --password para que funcione. Exemplo com autenticação personalizada com caracteres específicos:

wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/

Editar Como apontado por @asmaier, observe out that even if -r is for recursion, it has a default max level of 5:

       -r
       --recursive
           Turn on recursive retrieving.

       -l depth
       --level=depth
           Specify recursion maximum depth level depth.  The default maximum depth is 5.
Se não queres perder subdirs, é melhor usares a opção de espelhamento., -m:
       -m
       --mirror
           Turn on options suitable for mirroring.  This option turns on recursion and time-stamping, sets infinite
           recursion depth and keeps FTP directory listings.  It is currently equivalent to -r -N -l inf
           --no-remove-listing.
 551
Author: Thibaut Barrère, 2017-03-16 15:57:42
Só para complementar a resposta dada por Thibaut Barrère.

Eu usei

wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory

Repare na barra dupla a seguir ao nome do servidor. Se eu não colocar uma barra extra o caminho é relativo ao diretório home do Usuário.

  • - nH evita a criação de um directório com o nome do servidor
  • - nc evita criar um novo ficheiro se já existir no destino (é apenas ignorado)
  • --cut-dirs = 5 permite-me levar o conteúdo de /absolute/path/to / directory e colocá-lo na pasta onde lanço o wget. O número 5 é usado para filtrar os 5 componentes do caminho. A barra dupla significa um componente extra.
 149
Author: Ludovic Kuty, 2011-04-06 14:13:09
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
 24
Author: Vinko Vrsalovic, 2008-09-22 09:02:23

Se lftp estiver instalado na sua máquina, utilize mirror dir. E acabou-se. Veja o comentário de Ciro abaixo se quiser obter recursivamente uma pasta.

 20
Author: Dilawar, 2017-03-02 06:30:58

Se puder usar scp em vez de ftp, a opção -r fará isto por si. Gostaria de verificar se você pode usar um mecanismo de transferência de arquivos mais moderno do que FTP.

 17
Author: Greg Hewgill, 2008-09-22 08:59:12

Existe o 'ncftp' que está disponível para instalação no linux. Isto funciona no protocolo FTP e pode ser usado para baixar arquivos e pastas recursivamente. funciona no linux. Foi usado e está a funcionar bem para a transferência recursiva de pasta/ficheiro.

Verifique esta ligação... http://www.ncftp.com/

 7
Author: Cypher, 2008-09-22 09:05:21

Usa o WGet em vez dele. Ele suporta protocolos HTTP e FTP.

wget -r ftp://mydomain.com/mystuff
Boa Sorte!

Referência: http://linux.about.com/od/commands/l/blcmdl1_wget.htm

 6
Author: Jason Stevenson, 2008-09-22 09:05:07

Se puder, sugiro-lhe fortemente {[[0]} e bzip (ou gzip, seja o que for que flutue no seu barco) o directório na máquina remota-para um directório de qualquer tamanho significativo, a poupança de largura de banda provavelmente valerá o tempo para zip/unzip.

 3
Author: Hank Gay, 2008-09-22 09:02:44

Se quiser manter a linha de comandos FTP, deve tentar o NcFTP. Então você pode usar o get-R para obter recursivamente uma pasta. Você também terá conclusão.

 3
Author: Jazz, 2008-09-22 09:07:45

wget -r ftp://url

Funciona perfeitamente Para Redhat e Ubuntu

 2
Author: Phillip, 2010-05-07 22:01:42

Não deve utilizar ftp. Como telnet não está a usar protocolos seguros, e as senhas são transmitidas em texto claro. Isso torna muito fácil para terceiros capturar o seu nome de usuário e senha.

Para copiar as pastas remotas remotamente, estas opções são melhores:

  • rsync é a ferramenta mais adequada se você puder fazer login através de ssh, porque copia apenas as diferenças, e pode facilmente reiniciar no meio, no caso da conexão quebra.

  • ssh -r é a segunda melhor opção para copiar recursivamente estruturas de diretórios.

Ver:

 1
Author: Tilo, 2013-11-17 20:08:43

Activa ou desactiva a linha de comandos pelo comando PROMPT.

Utilização:

ftp>cd /to/directory    
ftp>prompt    
ftp>mget  *
 -4
Author: Rohit, 2011-07-17 12:27:54