Proč wget
vybrat toto jméno?
Bohužel wget
nebude dělat žádné předpoklady o tom, co chcete stáhnout, pokud mu to neřeknete. Nezáleží na tom, zda je váš soubor obrázkem, dokumentem, zazipovaným souborem atd.
Soubor se uloží bez ohledu na to, čím URL končí – tedy cokoli od posledního lomítka až po konec adresy URL. Ve vašem případě je to .gif?id=2
. Část za skutečnou příponou souboru (.gif
) je obsažen v adrese URL, ale je to parametr dotazu HTTP. Pro wget
, však určí výstupní název souboru.
Jak mohu nastavit jiný název souboru?
Pokud chcete zadat výstupní název souboru pro wget
, přidejte -O
(velké O) možnost:
wget example.com/something.gif?id=2 -O 2.gif
Toto přepíše výchozí chování a nastaví název souboru na 2.gif
. Všimněte si, že -o
(malá písmena) volba určuje výstupní název souboru pro všechny zprávy protokolu wget
by se jinak mohl vytisknout do shellu.
Nakonec je tu --content-disposition
možnost, která může výsledkem je nastavení správného názvu souboru. Ale to zcela závisí na tom, zda server, který stahujete, posílá správné informace v záhlaví:
Tato možnost je užitečná pro některé programy CGI pro stahování souborů, které používají hlavičky Content-Disposition k popisu názvu stahovaného souboru.
Tato možnost je v současné době stále označena jako experimentální, a proto není ve výchozím nastavení povolena.
Důrazně vám doporučuji, abyste si přečetli manuálovou stránku nástrojů, které používáte, abyste pochopili jejich chování. Stačí zadat man wget
a přečtěte si jej, zejména možnosti, které poskytuje.
Ještě k tomu, co napsal @Indrek v komentáři k vaší otázce:Předpokládám, že tam máte překlep a nemyslíte tím stahování souboru GIF do souboru s názvem .png
— pouhá změna přípony nebude automaticky z něj udělat PNG. GIF a PNG používají různá kódování a pro převod mezi těmito formáty budete muset použít jakýkoli nástroj pro převod obrázků. Tento převod však bude bezztrátový, takže není na škodu stáhnout soubory ve „nesprávném“ formátu a převést je později.
Existuje možnost příkazového řádku --content-disposition
což – pokud web poskytuje správné záhlaví – by mělo způsobit uložení souboru se správným názvem.
Můj debian squeeze box říká, že volba je "experimentální", ačkoli...
Je to jednoduše proto, že se podívejte na cestu, ta končí na ?id=2, proto se uloží takto, můžete soubor přesunout nebo použít parametr -O k definování názvu souboru.