13

Я пытаюсь получить некоторые файлы с моего FTP-сервера из командной строки. Я использую wget для загрузки всей папки одновременно. Команда:

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

Но проблема в том, что мой пароль содержит символ «@». Следовательно, команда становится

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

из-за чего wget пытается восстановить bar@ftp.hostname.com в качестве хоста, чего он не может. Пожалуйста помоги!

3 ответа3

26

Вместо синтаксиса user:pass@hostname используйте переключатели. Из 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
6

Вы также можете URL кодировать имя пользователя и / или пароль. Символ @ становится %40

Например:

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

можно записать как

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

Я понимаю, что этот вопрос уже давно решен, но я видел это краем глаза и подумал, что я должен добавить решение (на самом деле это полезно, потому что оно должно работать со всем, что использует или поддерживает использование URI, например, FileZilla или веб-браузер.)

-2

wget -m --ftp-user = имя пользователя --ftp-пароль = foo @ bar ftp://ftp.hostname.com/file -O /path_to_file /dest_file_name

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .