wget para ftp usando una contraseña que contenga @

15

Estoy tratando de obtener algunos archivos de mi servidor ftp desde la línea de comandos. Estoy usando wget para descargar toda la carpeta de una vez. El comando es:

wget -m ftp://username:[email protected]:/path/to/folder

Pero el problema es que mi contraseña contiene el símbolo '@'. Por lo tanto, el comando se convierte

wget -m ftp://username:foo@[email protected]:/.. 

debido a lo cual, wget intenta reubicar [email protected] como el host, lo cual no puede. ¡Por favor ayuda!

roopunk
fuente

Respuestas:

30

En lugar de la user:pass@hostnamesintaxis, use modificadores. De wget --help:

--ftp-user=USER         set ftp user to USER.
--ftp-password=PASS     set ftp password to PASS.

Ejemplo:

wget -m --ftp-user=username --ftp-password=foo@bar ftp://ftp.hostname.com/file
Dennis
fuente
7

También puede codificar en URL el nombre de usuario y / o contraseña. El @símbolo se convierte%40

Por ejemplo:

wget -m ftp://username:foo@[email protected]:/.. 

Se puede escribir como

wget -m ftp://username:foo%[email protected]:/.. 

Me doy cuenta de que esta pregunta se resolvió hace mucho tiempo, pero vi esto por el rabillo del ojo y pensé en arrojar una solución (esto es realmente útil, porque debería funcionar con cualquier cosa que use o admita el uso de URI, como FileZilla o un navegador web.)

John Chadwick
fuente
-2

wget -m --ftp-user = nombre de usuario --ftp-password = foo @ bar ftp://ftp.hostname.com/file -O / path_to_file / dest_file_name

Yezzo
fuente
2
Duplica una respuesta dada hace 3 años ...
xenoid