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:password@ftp.hostname.com:/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@bar@ftp.hostname.com:/.. 

pour cette raison, wget essaie de supprimer bar@ftp.hostname.com en tant qu'hôte, ce qu'il n'est pas en mesure de faire. Aidez-moi!

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

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@bar@ftp.hostname.com:/.. 

peut s'écrire

wget -m ftp://username:foo%40bar@ftp.hostname.com:/.. 

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.)


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.