¿Cómo descargo una carpeta completa a través de FTP en Terminal?
Respuesta
mget
es 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 *
El prompt
alternar puede ser útil.
FTP funciona dentro de un directorio, no en directorios como contenedores de archivos. Si absolutamente tuviera que hacer el trabajo y ftp fuera la única herramienta que pudiera usar, podría improvisar un script expect
para manejar ftp por usted.
Afortunadamente, existen alternativas como scp
| rsync
| wget
para obtener directorios completos de archivos.
Comentarios
- Ok … entonces la conclusión es que puedo ' t descargar una carpeta completa a la vez; Tengo que descargar los archivos individuales, ¿verdad?
- Sí. Todos ' no mostrarían wget, sftp, scp y rsync si ftp estuviera a la altura.
- Gracias … ¿SFTP permite la descarga de carpetas?
- Vaya (lo siento) – no. sftp tiene la misma sintaxis y limitaciones de ftp, solo asegura la conexión usando ssh en lugar de la autenticación de ftp.
- Si ' está vinculado al protocolo FTP, puede use lftp para realizar una descarga recursiva de un árbol de directorios. Solución de la vieja escuela a este problema.
Respuesta
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.
Comentarios
- OK, muchas gracias, pero ¿hay alguna forma vía FTP para hacer esto?
- ¡Genial! No tenía conocimiento de la proclividad FTP de curl '. ¡Gracias!
- Sí … yo tampoco. Yo ' probablemente lo usaré con más frecuencia.
- Yo ' estoy probando tu sugerencia pero obteniendo esto:
curl: (78) RETR response: 550
-
curl
absolutamente no puedo manejar esto .wget
puede.
Responder
Use scp
(documentación) o sftp
(documentación)
scp -r login@myserverip:/remote/directory/path/ mylocaldirectory
Comentarios
- 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?
- sftp es muy superior a FTP +1
- @bmike: sí, pero es posible que los servidores ftp más antiguos no admitan sftp.
Respuesta
Tuve que descargar más de 22 «000 imágenes de webcam de mi servidor web, que es un pequeño desafío tanto para el Finder como para mi programa FTP CyberDuck.
Así que hice lo siguiente (según la respuesta de @bmike):
mkdir ~/Desktop/image-dump-myserver ftp ftp://[email protected] # 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) ....
Respuesta
Estoy usando
wget -r -l 10 --ftp-user="FTP_USER" --ftp-password="FTP_PASSWORD" \ ftp://ftp.server.com/folder_to_download/*
Lamentablemente wget
no admite descargas paralelas.
Responder
siga estas instrucciones:
escriba
ftp
entonces estás en ftp luciendo como
ftp>
luego abres la ip del servidor
ftp> open xx.xxx.xxx.xx
entonces aparecerá un sk para el nombre de usuario, proporcionará
Name:(your ftp server): your_username
y luego le pedirá la contraseña
Password: your_password
entonces debe iniciar sesión y ver el shell ftp> nuevamente, puede escribir «ls» para listar todos los archivos y puede navegar como en inix con cd
cuando encuentre su nombre de archivo, puede descargarlo con
ftp> get filename
et voila, el archivo se descargará al directorio desde el que abrió el shell localmente
no puede descargar Directorys, pero podría navegar en su directorio y descargar varios, por ejemplo, todos los archivos
Tarea: Descargar varios archivos
Debe utilizar el comando mget de la siguiente manera para copiar varios archivos desde el servidor ftp remoto al local sistema. Es posible que se le solicite una respuesta sí / no (S / N) antes de transferir cada archivo (puede deshabilitar el mensaje 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
Comentarios
- La herramienta ftp unix se ha eliminado de OS X (en Sierra, ¿creo?).