GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo descargar recursivamente una carpeta a través de FTP en Linux

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.


Linux
  1. Cómo abrir y cerrar directorios en la terminal de Linux

  2. Cómo encontrar un archivo en Linux en todos los directorios recursivamente

  3. ¿Cómo eliminar un directorio y una carpeta en Linux?

  4. ¿Cómo usar Wget para descargar archivos recursivamente de un directorio web?

  5. Cómo cambiar el nombre de un directorio en Linux

Cómo proteger con contraseña una carpeta en Linux

Cómo listar archivos recursivamente en Linux

Cómo comprimir una carpeta en Linux

Cómo copiar un directorio en Linux

Cómo Chown recursivamente en Linux

Cómo SSH al servidor a través de Linux