Otázka: Intranetový web mé společnosti hostí GB softwarových nástrojů a aplikací. Všechny jsem se snažil stáhnout pomocí příkazu wget a přesto zachovat stejnou strukturu adresářů (zdrojový adresář má organizované nástroje v různých kategoriích, které se mi líbí udržovat stejné). Zde je příklad webového adresáře intranetu – http://intranet.company.com/software-tools/ . „Softwarové nástroje“ je adresář, který obsahuje spoustu podadresářů a souborů. Chtěl bych všechny stáhnout rekurzivně pomocí příkazu wget. Ale zdá se, že nemohu najít správné možnosti pro wget? Může mi někdo z techglimpse pomoci? – Naveen.
Odpověď:
wget je nástroj příkazového řádku pro stahování souborů ze vzdáleného webového serveru. Umožňuje vám stáhnout konkrétní soubor, procházet adresářem (myslím rekurzivně) a stahovat soubory také z podadresářů.
wget rekurzivní stažení
# wget -r http://intranet.company.com/software-tools/
Výše uvedený příkaz stáhne všechny soubory a adresáře v adresáři „software-tools“. Pamatujte však, že stáhne také soubor „index.html“ v adresáři „software-tool“ a také uvnitř podadresářů. Abyste tomu zabránili, musíte použít možnost odmítnutí s hodnotou „index.html“.
možnost odmítnutí wget
# wget -r --reject "index.html*" http://intranet.company.com/software-tools/
Poznámka: Rekurzivní volba pro wget bude fungovat pouze v případě, že výpis adresáře povolil webový server.
Ukázkový výstup:
:::::::::::::::::::::::::: Removing intranet.company.com/software-tools/index.html?C=M;O=D since it should be rejected. ::::::::::::::::::::::::::
Při rekurzivním stahování pomocí wget nestoupejte do nadřazeného adresáře
Pokud nechcete, aby wget sledoval odkaz v indexu adresáře a stoupal do nadřazeného adresáře, pak by měla být použita možnost „–no-parent“, jak je uvedeno níže.
wget -r --no-parent --reject "index.html*" http://intranet.company.com/software-tools/
Více informací najdete od man wget.