Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am trying to get some files from my ftp server from the command line. I am using wget to download the whole folder at once. The command is:

wget -m ftp://username:password@ftp.hostname.com:/path/to/folder

But the problem is, my password contains the '@' symbol. Hence The command becomes

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

due to which, wget tries to resove bar@ftp.hostname.com as the host, which it is not able to. Please help!

share|improve this question

2 Answers 2

up vote 12 down vote accepted

Rather than the user:pass@hostname syntax, use switches. From wget --help:

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


wget -m --ftp-user=username --ftp-password=foo@bar ftp://ftp.hostname.com/file
share|improve this answer
nice. this works. thanks there! –  roopunk Dec 22 '12 at 4:29
Logged in, to upvote. Thanks a ZILLION mate! –  KarmicDice May 30 '14 at 19:23

You can also URL encode the username and/or password. The @ symbol becomes %40

For example:

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

can be written as

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

I realize this question has been solved long ago, but I saw this in the corner of my eye and thought I'd throw in a solution (this is actually useful, because it should work with anything that uses or supports using URIs, such as FileZilla or a web browser.)

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.