ncftp -u <user> -p <pass> <server>
ncftp> mget directory
Jen pro doplnění odpovědi Thibauta Barrèra.
Použil jsem
wget -r -nH --cut-dirs=5 -nc ftp://user:[email protected]//absolute/path/to/directory
Všimněte si dvojitého lomítka za názvem serveru. Pokud nevložíte lomítko navíc, cesta je relativní k domovskému adresáři uživatele.
-nH
zabrání vytvoření adresáře pojmenovaného podle názvu serveru-nc
zabrání vytvoření nového souboru, pokud již v cíli existuje (je pouze přeskočen)--cut-dirs=5
umožňuje vzít obsah /absolute/cesta/k/adresáři a vložit jej do adresáře, kde spustíte wget. Číslo 5 se používá k odfiltrování 5 složek cesty. Dvojité lomítko znamená další komponent.
Můžete se spolehnout na wget, který obvykle zpracovává ftp get správně (alespoň podle mé vlastní zkušenosti). Například:
wget -r ftp://user:[email protected]/
Můžete také použít -m
který je vhodný pro zrcadlení. Aktuálně je ekvivalentní -r -N -l inf
.
Pokud máte v podrobnostech pověření nějaké speciální znaky, můžete zadat --user
a --password
argumenty, aby to fungovalo. Příklad s vlastním přihlášením se specifickými znaky:
wget -r --user="[email protected]" --password="Pa$$wo|^D" ftp://server.com/
Jak zdůraznil @asmaier, dávejte si pozor, i když -r
je pro rekurzi, má výchozí maximální úroveň 5:
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
Pokud nechcete přijít o podadresáře, použijte raději možnost zrcadlení -m
:
-m --mirror Turn on options suitable for mirroring. This option turns on recursion and time-stamping, sets infinite recursion depth and keeps FTP directory listings. It is currently equivalent to -r -N -l inf --no-remove-listing.
Pokud lftp
je na vašem počítači nainstalován, použijte mirror dir
. A máte hotovo. Pokud chcete rekurzivně stáhnout adresář, podívejte se na komentář Ciro níže.