wget pour ftp en utilisant un mot de passe contenant @

15

J'essaye d'obtenir quelques fichiers de mon serveur ftp à partir de la ligne de commande. J'utilise wget pour télécharger le dossier entier en une seule fois. La commande est:

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

Mais le problème est que mon mot de passe contient le symbole «@». Par conséquent, la commande devient

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

pour cette raison, wget essaie de supprimer [email protected] en tant qu'hôte, ce qu'il n'est pas en mesure de faire. Aidez-moi!

roopunk
la source

Réponses:

30

Plutôt que la user:pass@hostnamesyntaxe, utilisez des commutateurs. De wget --help:

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

Exemple:

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

Vous pouvez également encoder l'URL du nom d'utilisateur et / ou du mot de passe. Le @symbole devient%40

Par exemple:

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

peut s'écrire

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

Je me rends compte que cette question a été résolue il y a longtemps, mais je l'ai vu dans le coin de l'œil et j'ai pensé proposer une solution (cela est en fait utile, car cela devrait fonctionner avec tout ce qui utilise ou prend en charge l'utilisation d'URI, tels que FileZilla ou un navigateur Web.)

John Chadwick
la source
-2

wget -m --ftp-user = nom d'utilisateur --ftp-password = foo @ bar ftp://ftp.hostname.com/file -O / path_to_file / dest_file_name

Yezzo
la source
2
Duplique une réponse donnée il y a 3 ans ...
xenoid