wget dla ftp za pomocą hasła zawierającego @

15

Próbuję pobrać niektóre pliki z mojego serwera ftp z wiersza polecenia. Korzystam z wget, aby pobrać cały folder na raz. Polecenie to:

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

Problem w tym, że moje hasło zawiera symbol „@”. Stąd polecenie staje się

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

z tego powodu wget próbuje przywrócić [email protected] jako hosta, czego nie jest w stanie. Proszę pomóż!

roopunk
źródło

Odpowiedzi:

30

Zamiast user:pass@hostnameskładni użyj przełączników. Od wget --help:

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

Przykład:

wget -m --ftp-user=username --ftp-password=foo@bar ftp://ftp.hostname.com/file
Dennis
źródło
7

Możesz także zakodować URL nazwę użytkownika i / lub hasło. @Symbol staje%40

Na przykład:

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

można zapisać jako

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

Zdaję sobie sprawę, że to pytanie zostało rozwiązane dawno temu, ale zobaczyłem to kątem oka i pomyślałem, że wrzucę rozwiązanie (jest to faktycznie przydatne, ponieważ powinno działać z wszystkim, co używa lub obsługuje używanie identyfikatorów URI, takie jak FileZilla lub przeglądarka internetowa).

John Chadwick
źródło
-2

wget -m --ftp-user = nazwa użytkownika --ftp-password = foo @ bar ftp://ftp.hostname.com/file -O / ścieżka_do_pliku / nazwa_pliku_doc

Yezzo
źródło
2
Duplikuje odpowiedź udzieloną 3 lata temu ...
xenoid