wget ist ein nützliches Werkzeug zum Downloaden von Webseiten. Zum Betrachten von Webseiten ist es sicher nur sehr beschränkt nützlich, doch zum Downloaden von Binärdateien, Bildern, größeren Dateien oder ganzen Ordnern über HTTP kann es sehr nützlich sein. Das Programm ist ein Bestandteil des GNU-Projekts und benötigt keine grafische Oberfläche.
Sinnvoll einsetzen könnte man wget z.B. zum automatischen Herunterladen des täglich erscheinenden Lieblingscomics im Cron-Job, zum Aktualisieren einer Datei per Tastendruck, in einem Script oder zum Ausgeben von Webseitendaten auf der Konsole.
Unter den meisten Distributionen sollte wget schon installiert sein. Wenn es doch nicht da ist, kann man es wie folgt nachholen (Ubuntu/Debian):
sudo apt-get install wget
Zum einfachen Download z.B. eines Programms (hier JDownloader 0.9), zu dem man den Link hat:
wget "http://installer.jdownloader.org/jd_unix_0_9.sh"
Grundsätzlich ist es sehr empfehlenswert Anführungszeichen für die URL zu benutzen, falls sie Sonderzeichen wie „&“ oder Leerzeichen enthält, die in der Kommandozeile eine andere Bedeutung haben.
Der Parameter „-o“ hilft aus, wenn die Datei einen ungünstigen Namen hat oder man sicher gehen möchte, dass die heruntergeladene Datei an einem bestimmten Ort gespeichert werden soll. Der folgende Befehl lädt die GRML-Vorlage für die ZSH (Z Shell) Konfiguration und überschreibt die aktuelle Konfiguration, die sich im Homeverzeichnis als versteckte Datei „.zshrc“ befindet.
wget -O ~/.zshrc http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc
Möchte man den Inhalt einer Datei direkt auf der Konsole ausgeben, gibt man als Ziel für „-o“ einfach einen Bindestrich an. Der Parameter „-q“ verhindert, dass wget den Fortschritt anzeigt und sorgt somit dafür, dass nur die Ausgabe ankommt:
wget -q -O - "http://deruwe.de/dateien/2009/11/nachnamen.txt"
Ausgabe weiterleiten
Natürlich kann die daraus resultierende Ausgabe auch an andere Programme weitergeleitet werden. Beispielsweise an sed, um den Inhalt des title-Tags heraus zu finden:
wget -q -O - "http://tagesschau.de" | sed -n 's/<title>\(.*\)<\/title>/\1/Ip'
Einen ganzen Ordner mit wget herunterladen
Der Inhalt eines ganzen Ordners lässt sich herunterladen mit:
wget -r --no-parent --reject "index.html*" "http://localhost/projektdaten/"
Dabei sollten die Parameter nicht vergessen werden!
- -r – sorgt dafür, dass die Ordner rekursiv hinabgestiegen werden
- −−no-parent – passt auf, dass Elternordner nicht heruntergeladen wird. Wichtig!
- −−reject „index.html*“ – Webserver erstellen generische HTML-Dateien um den Ordnerinhalt anzuzeigen. Diese sollen nicht heruntergeladen werden.
Hinweis: Ob der Inhalt eines Ordners automatisch heruntergeladen werden kann hängt natürlich davon ab, ob der Webserver erlaubt Ordnerinhalte aufzulisten. Bei Apache muss das mit der Option „+Indexes“ für den Ordner aktiviert werden.