¿Cómo descargo carpetas a través de FTP en la Terminal?

Respuestas:

9

mgetes lo más cercano que puede obtener con el binario FTP incluido. Tienes que mkdir y cd / lcd y luego obtener todos los archivos que coincidan con un patrón como*

La promptpalanca puede ser útil.

FTP funciona dentro de un directorio, no en directorios como contenedores de archivos. Si realmente tuviera que hacer el trabajo y ftp fuera la única herramienta que pudiera usar, podría improvisar un expectscript para manejar ftp por usted.

Afortunadamente hay alternativas como scp| rsyncEl | wgetpara obtener directorios completos de archivos.

bmike
fuente
Ok ... la conclusión es que no puedo descargar una carpeta completa al mismo tiempo; Tengo que descargar los archivos individuales, ¿verdad?
daviesgeek
Sip. Todos no mostrarían wget, sftp, scp y rsync si ftp estuviera a la altura de la tarea.
bmike
Gracias ... ¿SFTP permite la descarga de carpetas?
daviesgeek
Oops (lo siento) - no. sftp tiene la misma sintaxis y limitaciones que ftp: solo asegura la conexión mediante ssh en lugar de la autenticación ftp.
bmike
Si está vinculado al protocolo FTP, puede usar lftp para realizar una descarga recursiva de un árbol de directorios. Solución de la vieja escuela a este problema.
Ian C.
7

Otra forma es usar curl

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

Creo que esto está funcionando, o archivo por archivo

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

Espero que esto haya ayudado.

noktec
fuente
OK, muchas gracias, pero ¿hay alguna manera a través de FTP para hacer esto?
daviesgeek
¡Increíble! No estaba al tanto de la propensión FTP de curl. ¡Gracias!
bmike
Sí ... yo tampoco. Probablemente lo use con más frecuencia.
daviesgeek
2
Estoy probando su sugerencia pero obteniendo esto:curl: (78) RETR response: 550
Omer
1
curlabsolutamente no puede manejar esto. wgetlata.
Ken Sharp
3

Uso scp (documentación) o sftp (documentación)

scp -r login@myserverip:/remote/directory/path/ mylocaldirectory
ghoppe
fuente
Eso no es lo que estoy preguntando. Mi pregunta es: ¿Cómo descargo una carpeta a través de FTP en la Terminal? En otras palabras, ¿qué comandos en FTP utilizo para descargar una carpeta?
daviesgeek
2
sftp es muy superior a FTP +1
bmike
1
@bmike: sí, pero los servidores ftp más antiguos pueden no ser compatibles con sftp.
PLL
3

Tuve que descargar más de 22,000 fotos de la cámara web de mi servidor web, lo cual es un desafío tanto para el Finder como para mi programa FTP CyberDuck.

Entonces hice lo siguiente (basado en la respuesta de @ 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

Luego, los archivos se descargan en la carpeta deseada:

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)  
....  
Besi
fuente
3

estoy usando

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

Lamentablemente wgetno admite descargas paralelas.

oussama fahd
fuente
0

sigue estas instrucciones:

tipo

ftp

entonces estás en ftp pareciendo

ftp>

entonces abres ip del servidor

ftp> open xx.xxx.xxx.xx

luego pedirá nombre de usuario, usted proporcionará

Name:(your ftp server): your_username

entonces pedirá contraseña

Password:  your_password

entonces debe iniciar sesión y volver a ver el shell ftp>, puede escribir "ls" para enumerar todos los archivos y puede navegar como en inix con cd

cuando encontraste tu nombre de archivo puedes descargarlo con

ftp> get filename

et voila, el archivo se descargará en el directorio donde abrió el shell localmente

no puede descargar directores, pero puede navegar a su directorio y descargar múltiples, por ejemplo, todos los archivos

Tarea: descargar varios archivos

Debe usar el comando mget de la siguiente manera para copiar múltiples archivos del servidor ftp remoto al sistema local. Es posible que se le solicite una respuesta de sí / no (S / N) antes de transferir cada archivo (puede deshabilitar la solicitud pasando la opción -i al cliente ftp). Para descargar todos los archivos, ingrese: ftp> mget *

información de http://www.cyberciti.biz/faq/linux-unix-ftp-commands/ cheers

John Smith
fuente
La herramienta ftp unix se ha eliminado de OS X (¿en Sierra, creo?).
benwiggy