ncftp -u <user> -p <pass> <server>
ncftp> mget directory
Solo para complementar la respuesta dada por Thibaut Barrère.
Yo solía
wget -r -nH --cut-dirs=5 -nc ftp://user:[email protected]//absolute/path/to/directory
Tenga en cuenta la doble barra después del nombre del servidor. Si no coloca una barra inclinada adicional, la ruta es relativa al directorio de inicio del usuario.
-nH
evita la creación de un directorio con el nombre del servidor-nc
evita crear un nuevo archivo si ya existe en el destino (simplemente se omite)--cut-dirs=5
permite tomar el contenido de /absolute/path/to/directory y colocarlo en el directorio donde inicia wget. El número 5 se utiliza para filtrar los 5 componentes de la ruta. La doble barra significa un componente extra.
Puede confiar en wget, que generalmente maneja ftp get correctamente (al menos en mi propia experiencia). Por ejemplo:
wget -r ftp://user:[email protected]/
También puedes usar -m
que es adecuado para reflejar. Actualmente es equivalente a -r -N -l inf
.
Si tiene algunos caracteres especiales en los detalles de la credencial, puede especificar el --user
y --password
argumentos para que funcione. Ejemplo con inicio de sesión personalizado con caracteres específicos:
wget -r --user="[email protected]" --password="Pa$$wo|^D" ftp://server.com/
Como señaló @asmaier, tenga cuidado de que incluso si -r
es para recursividad, tiene un nivel máximo predeterminado de 5:
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
Si no quiere perderse los subdirectorios, mejor use la opción de duplicación, -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.
Si lftp
está instalado en su máquina, use mirror dir
. Y ya está. Consulte el comentario de Ciro a continuación si desea descargar un directorio de forma recursiva.