Como faço para baixar pastas através do FTP no Terminal?


Respostas:


9

mgeté o mais próximo que você pode chegar com o binário FTP incluído. Você precisa mkdir e cd / lcd e, em seguida, obter todos os arquivos que correspondam a um padrão como*

A promptalternância pode ser útil.

O FTP funciona em um diretório, não em diretórios como contêineres de arquivos. Se você realmente tivesse que fazer o trabalho e o ftp fosse a única ferramenta que poderia usar - você poderia expectcriar um script para gerar o ftp para você.

Felizmente, existem alternativas como scp| rsync| wgetpara obter diretórios inteiros com arquivos.


Ok ... então o ponto principal é que não consigo baixar uma pasta inteira de uma só vez; Eu tenho que baixar os arquivos individuais, certo?
— Daviesgeek

Sim. Todo mundo não estaria mostrando wget, sftp, scp e rsync se o ftp estivesse à altura da tarefa.
— Bmike

Obrigado ... o SFTP permite o download de pastas?
— Daviesgeek

Opa (desculpe) - não. sftp é a mesma sintaxe e limitações do ftp - apenas protege a conexão usando ssh em vez de autenticação ftp.
— bmike

Se você estiver vinculado ao protocolo FTP, poderá usar o lftp para fazer um download recursivo de uma árvore de diretórios. Solução da velha escola para esse problema.
— Ian C.

7

Outra maneira é usar curl

curl ftp://ftp.com/mp3/* --user login:password -o /myfolder/*

Eu acho que isso está funcionando, ou arquivo por arquivo

curl ftp://ftp.com/mp3/mymusic.zip --user login:password -o mymusic.zip

Espero que isso tenha ajudado.


OK, muito obrigado, mas existe uma maneira via FTP de fazer isso?
— Daviesgeek

Impressionante! Eu não tinha conhecimento da propensão de FTP do curl. Obrigado!
— Bmike

Sim ... eu também não. Provavelmente vou usá-lo com mais frequência.
— Daviesgeek

2
Eu estou tentando sua sugestão, mas obtendo o seguinte:curl: (78) RETR response: 550
— Omer

1
curlabsolutamente não pode lidar com isso. wgetposso.
— Ken Sharp

3

Use scp (documentação) ou sftp (documentação)

scp -r login@myserverip:/remote/directory/path/ mylocaldirectory

Não é isso que estou perguntando. Minha pergunta é: Como faço para baixar uma pasta via FTP no Terminal? Em outras palavras, quais comandos no FTP eu uso para baixar uma pasta?
— Daviesgeek

2
sftp é muito superior ao FTP +1
— bmike

1
@ bmike: sim, mas os servidores ftp mais antigos podem não suportar sftp.
— PLL

3

Eu tive que baixar mais de 22.000 fotos da webcam do meu servidor da web, o que é um desafio para o Finder e para o meu programa FTP CyberDuck.

Então, fiz o seguinte (com base na resposta do @ bmike):

mkdir ~/Desktop/image-dump-myserver
ftp ftp://myuser@myserver.com
# enter password

# You're now in the ftp console (where the world is still okay)

# Set the local folder
lcd ~/Desktop/image-dump-myserver

# cd into the desired folder (`ls`, `pwd` etc. all work here)
cd /httpdocs/images

# Toggle the interactive mode
prompt

# Download the desired files (all the images in my case)
mget *.jpg

Em seguida, os arquivos estão sendo baixados na pasta desejada:

local: image1433509292_1582.jpg remote: image1433509292_1582.jpg  
229 Entering Extended Passive Mode (|||50001|)  
150 Opening BINARY mode data connection for image1433509292_1582.jpg (63626 bytes)  
100% |***********************************| 63626        1.51 MiB/s    00:00 ETA  
226 Transfer complete  
63626 bytes received in 00:00 (0.98 MiB/s)  

local: image1427279963_0841.jpg remote: image1427279963_0841.jpg  
229 Entering Extended Passive Mode (|||50053|)  
150 Opening BINARY mode data connection for image1427279963_0841.jpg (67194 bytes)  
100% |***********************************| 67194        1.64 MiB/s    00:00 ETA  
226 Transfer complete  
67194 bytes received in 00:00 (1.04 MiB/s) 

local: image1439798493_1783.jpg remote: image1439798493_1783.jpg  
229 Entering Extended Passive Mode (|||50357|)  
150 Opening BINARY mode data connection for image1439798493_1783.jpg (48876 bytes)  
100% |***********************************| 48876        1.80 MiB/s    00:00 ETA  
226 Transfer complete  
48876 bytes received in 00:00 (996.81 KiB/s)  
....  

3

estou usando

wget -r -l 10 --ftp-user='FTP_USER' --ftp-password='FTP_PASSWORD' \
    ftp://ftp.server.com/folder_to_download/*

Infelizmente wget, não suporta downloads paralelos.


0

siga estas instruções:

tipo

ftp

então você está no ftp parecendo

ftp>

então você abre ip do servidor

ftp> open xx.xxx.xxx.xx

então ele pedirá o nome de usuário, você fornecerá

Name:(your ftp server): your_username

então ele solicitará a senha

Password:  your_password

então você deve estar logado e ver o ftp> shell novamente, você pode digitar "ls" para listar todos os arquivos e navegar como no inix com cd

quando você encontrou seu nome de arquivo, você pode baixá-lo com

ftp> get filename

et voila, o arquivo será baixado para o diretório em que você abriu o shell localmente

você não pode baixar diretórios, mas pode navegar no seu diretório e baixar vários, por exemplo, todos os arquivos

Tarefa: Baixar vários arquivos

Você precisa usar o comando mget da seguinte maneira para copiar vários arquivos do servidor ftp remoto para o sistema local. Você pode ser solicitado a responder sim / não (S / N) antes de transferir cada arquivo (você pode desativar o prompt passando a opção -i para o cliente ftp). Para baixar todos os arquivos, digite: ftp> mget *

informações de http://www.cyberciti.biz/faq/linux-unix-ftp-commands/ felicidades


A ferramenta ftp unix foi removida do OS X (na Sierra, eu acho?).
— precisa saber é
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.