Mit wget Dateien rekursiv herunterladen – auch per FTP

wget im Einsatz
wget im Einsatz
28.05.2012 18:22

Heutzutage lädt man sich Dateien meist über den Browser herunter. Ein Mausklick genügt und der Download läuft. Möchte man sich jedoch mehrere Dateien von einer Seite angeln, artet das schnell in eine Klickorgie aus. Vor einem ähnlichen Problem steht man, wenn man per FTP mehrere Dateien von einem Server holen möchte: Das ftp-Kommando kann immer nur einzelne Dateien aus einem einzigen Verzeichnis herunterladen.

Sofern man auf dem fremden Server ein Benutzerkonto besitzt, könnte man sich dort natürlich etwa per SSH einloggen, die gewünschten Verzeichnisse und Dateien per tar oder zip in ein entsprechendes Archiv packen und dann dieses anschließend auf den eigenen Rechner übertragen.

Es geht aber viel einfacher und komfortabler mit einem kleinen Programm, das jede Distribution mitbringt, auf der Festplatte aber häufig ein Schattendasein führt: wget. Das Kommandozeilenwerkzeug lädt automatisch beliebige Dateien via HTTP, HTTPS oder FTP herunter. Es genügt sogar ein einziger Befehl, um es einen kompletten Server spiegeln zu lassen.

Singular

Zunächst holt wget eine einzelne Datei via:

wget --user=benutzername --password=passwort ftp://ftp.example.com/einedatei.zip

Hier meldet sich wget mit dem benutzernamen und dem passwort am FTP-Server ftp.example.com an und lädt einedatei.zip herunter. Nach dem gleichen Prinzip angelt sich wget auch per HTTP eine Datei vom Web-Server:

wget --user=benutzername --password=passwort http://www.example.com/einedatei.zip

Sollte man keinen Benutzernamen und Passwort benötigen, lässt man dieses Duo einfach weg:

wget http://www.example.com/einedatei.zip

Plural

Mehrere Dateien deckt man mit den üblichen Platzhaltersymbolen ab:

wget --user=benutzername --password=passwort ftp://www.example.com/eine*

Alle Dateien und sämtliche Unterverzeichnisse aus dem Verzeichnis einverzeichnis holt:

wget -r -l 10 --user=benutzername --password=passwort ftp://ftp.example.com/einverzeichnis/

Das -r weist wget an, auch in alle Unterverzeichnisse herabzusteigen – standardmäßig genau bis zu 5 Verzeichnisebenen. Durch den Parameter -l kann man diese Vorgabe ändern, bei -l 10 steigt wget bis zu 10 Verzeichnisebenen herab. Ein -l inf hebt die Begrenzung komplett auf, wget lädt dann alle Unterverzeichnisse herunter, egal wie tief sie verschachtelt sind. Die Dateien landen übrigens auf der eigenen Festplatte in einem Verzeichnis, das so wie der Server heißt – im Beispiel also unter ftp.example.com.
Einen kompletten Server spiegelt schließlich:

wget -m --user=benutzername --password=passwort ftp://ftp.example.com/

Doch Vorsicht: Das Spiegeln eines FTP-Servers kann diesen stark in Anspruch nehmen. Viele Betreiber von FTP-Servern sehen es daher nicht gerne, wenn man hemmungslos große Datenmengen absaugt.


Kommentare

Aktuelle Fragen

Drucker Epson XP-332 unter ubuntu 14.04 einrichten
Andrea Wagenblast, 30.11.2016 22:07, 2 Antworten
Hallo, habe vergeblich versucht mein Multifunktionsgerät Epson XP-332 als neuen Drucker unter...
Apricity Gnome unter Win 10 via VirtualBox
André Driesel, 30.11.2016 06:28, 2 Antworten
Halo Leute, ich versuche hier schon seit mehreren Tagen Apricity OS Gnome via VirtualBox zum l...
EYE of Gnome
FRank Schubert, 15.11.2016 20:06, 2 Antworten
Hallo, EOG öffnet Fotos nur in der Größenordnung 4000 × 3000 Pixel. Größere Fotos werden nic...
Kamera mit Notebook koppeln
Karl Spiegel, 12.11.2016 15:02, 2 Antworten
Hi, Fotografen ich werde eine SONY alpha 77ii bekommen, und möchte die LifeView-Möglichkeit nu...
Linux auf externe SSD installieren
Roland Seidl, 28.10.2016 20:44, 1 Antworten
Bin mit einem Mac unterwegs. Mac Mini 2012 i7. Würde gerne Linux parallel betreiben. Aber auf e...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] WLAN Adressenbereich
"Michael R. Moschner", 02.12.2016 17:54
Am Samstag, 26. November 2016, 00:54:07 schrieb Richard Kraut: Hallo Richard und alle anderen Danke für die...
Re: [EasyLinux-Ubuntu] [erledigt?] xubuntu 16.04: unvollständige_Aktualisierung
Hartmut Haase, 30.11.2016 18:16
Hallo Liste, > 0% [Verbindung mit security.ubuntu.com (2001:67c:1560:8001::11)] wenn man das Ganze lang...
Re: [EasyLinux-Ubuntu] xubuntu_16.04:_unvollständige_Aktualisierung
Hartmut Haase, 30.11.2016 16:28
Hallo Frank, > Habe ich auch gerade? > Root hat noch 3GB frei. ich habe noch knapp 10GB frei. Dara...
Re: [EasyLinux-Ubuntu] Kernel_löschen
Heiko, 30.11.2016 15:26
Am Mittwoch, 30. November 2016, 10:13:05 schrieb Rainer: Hallo , > > Am Wed, 30 Nov 2016 09:54:19...
Re: [EasyLinux-Ubuntu] xubuntu_16.04:_unvollständige_Aktualisierung
Frank von Thun, 30.11.2016 15:05
Am 30.11.2016 um 10:02 schrieb Hartmut Haase: > Hallo Loste, > > wenn ich sudo apt-get update au...