¿Cómo descargo una carpeta completa a través de FTP en Terminal?
¿Cómo descargo una carpeta completa a través de FTP en Terminal?
mget
es lo más cerca que puede acercarse 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 conmutador prompt
puede ser útil.
FTP funciona dentro de un directorio, no en directorios como contenedores de archivos. Si absolutamente tenía que hacer el trabajo y ftp era la única herramienta que podía usar, podría improvisar un script expect
para manejar ftp por usted.
Afortunadamente, existen alternativas como scp
| rsync
| wget
para obtener directorios completos por valor de archivos.
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.
Utilice scp
(documentación) o sftp
(documentación)
scp -r login@myserverip:/remote/directory/path/ mylocaldirectory
Tuve que descargar más de 22,000 imágenes de cámara web desde mi servidor web, lo cual es un reto para el Finder y mi programa de FTP CyberDuck.
Así que hice lo siguiente (basado en 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 están descargando 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)
....
sigue esta instrucción:
tipo
ftp
entonces estás en ftp como se ve
ftp>
luego abres ip del servidor
ftp> open xx.xxx.xxx.xx
entonces le pedirá un nombre de usuario, usted proporcionará
Name:(your ftp server): your_username
entonces pedirá contraseña
Password: your_password
entonces debes iniciar sesión y ver el ftp > shell otra vez, puede escribir "ls" para enumerar 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á en el directorio donde abrió el shell localmente
no puede descargar directorios, pero puede navegar en 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 varios 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 enlace saludos
Lea otras preguntas en las etiquetas terminal data-transfer ftp