Estoy tratando de ftp una carpeta usando la línea de comando ftp client, pero hasta ahora solo he podido usar 'get' para obtener archivos individuales.
Estoy tratando de ftp una carpeta usando la línea de comando ftp client, pero hasta ahora solo he podido usar 'get' para obtener archivos individuales.
Respuestas:
Puede confiar en wget, que generalmente maneja ftp get correctamente (al menos en mi propia experiencia). Por ejemplo:
wget -r ftp://user:pass@server.com/
También puede usar el -m
que sea adecuado para duplicar. Actualmente es equivalente a -r -N -l inf
.
Si tiene algunos caracteres especiales en los detalles de la credencial, puede especificar los argumentos --user
y --password
para que funcione. Ejemplo con inicio de sesión personalizado con caracteres específicos:
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/
EDITAR
Como lo señaló @asmaier, tenga cuidado de que incluso si -r
es por 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 quieres perderte las subdirecciones, mejor usa 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.
wget -m
( --mirror
). wget -r
está limitado a una profundidad de recursión de 5 por defecto.
--user
y --password
también en Red Hat. Mi wget es: GNU Wget 1.11.4 Red Hat modified
me pregunto si es una cosa de versión o de distro ...
-l 0
, por lo que no hay necesidad de usar --mirror
que puede tener algunos efectos secundarios no deseados, tales como archivos .listing
wget --ask-password -rl 99 ftp://user@server.com
. De esta forma, la contraseña no es visible ps
y no permanece en el historial. Por supuesto, por la naturaleza de ftp, se envía sin cifrar al servidor.
$
), por ejemplo--user='user' --password='pa$$word'
Solo para complementar la respuesta dada por Thibaut Barrère.
solía
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//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 (solo se omite) --cut-dirs=5
permite tomar el contenido del directorio / absolute / path / to / y colocarlo en el directorio donde inicia wget. El número 5 se usa para filtrar los 5 componentes de la ruta. La doble barra significa un componente adicional.--ftp-user=USER
y --ask-password
.
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
open ftp://USERNAME:PASSWORD@HOST
después de comenzar ncftp ...
wget
, y más rápido también en modo TAR. ¡Gracias!
Si lftp
está instalado en su máquina, use mirror dir
. Y ya terminaste. Vea el comentario de Ciro a continuación si desea descargar recursivamente un directorio.
mirror -R dir
carga / actualización recursiva de directorios
mirror ./
para descargar todos los archivos y carpetas de forma recursiva en la ruta actual.
mirror
, para el directorio actual y sus subcarpetas.
Si puede usar en scp
lugar de ftp
, la -r
opción lo hará por usted. Verificaría si puede usar un mecanismo de transferencia de archivos más moderno que FTP.
scp
aún intentará usar ssh, que no funcionará si solo tiene credenciales FTP. Se siente raro responder a un comentario de 2008 diciendo que la tecnología que estoy atascado con moderna no es :( bueno de 2008, que cumplió 18 años el día que envió su comentario.
Use WGet en su lugar. Es compatible con los protocolos HTTP y FTP.
wget -r ftp://mydomain.com/mystuff
¡Buena suerte!
referencia: http://linux.about.com/od/commands/l/blcmdl1_wget.htm
Hay 'ncftp' que está disponible para su instalación en Linux. Esto funciona en el protocolo FTP y se puede usar para descargar archivos y carpetas de forma recursiva. Funciona en Linux. Se ha utilizado y funciona bien para la transferencia recursiva de carpetas / archivos.
Consulte este enlace ... http://www.ncftp.com/
Si puede, le sugiero encarecidamente tar
y bzip
(o gzip
lo que sea que flote su barco) el directorio en la máquina remota: para un directorio de cualquier tamaño significativo, el ahorro de ancho de banda probablemente valdrá la pena el tiempo para comprimir / descomprimir.
No deberías usar ftp
. Al igual telnet
que no está utilizando protocolos seguros, y las contraseñas se transmiten en texto claro. Esto hace que sea muy fácil para terceros capturar su nombre de usuario y contraseña.
Para copiar directorios remotos de forma remota, estas opciones son mejores:
rsync
es la herramienta más adecuada si puede iniciar sesión a través de ssh
, ya que solo copia las diferencias y puede reiniciarse fácilmente en el medio en caso de que se rompa la conexión.
ssh -r
es la segunda mejor opción para copiar recursivamente estructuras de directorios.
Ver:
alternar la solicitud mediante el comando PROMPT.
Uso:
ftp>cd /to/directory
ftp>prompt
ftp>mget *
mget
, no es recursivo en absoluto. la respuesta del 22 de septiembre de 08 a las 9:01 Thibaut Barrère es más fácil de entender pero debe agregar la opción-l 0
como se menciona en los comentarios