Viele Dateien automatisch runterladen

Wer kennt das nicht? Jemand hat eine große Anzahl an Fotos auf einen Server hochgeladen. Zwar würde man diese Bilder gerne alle haben, ist aber zu faul 200 mal Rechtsklick, Speichern unter… zu klicken. Sind die Dateien nach einem logischen Muster benannt, also etwa mit fortlaufenden Nummern, gibt es eine einfache Lösung. Das kostenlose Commandline-Programm cURL (Client for URLs) benötigt nur eine Zeile, um eine unbegrenzte Anzahl von Dateien von einem Server runterzuladen. Unter vielen Linux-Distributionen ist cURL bereits vorinstalliert, ansonsten kann das Programm hier kostenlos heruntergeladen und installiert werden.

Als Beispiel dienen Bilder, die nach einem für Digitalkameras typischen Muster benannt sind. Die Dateinamen sehen so aus: CIMG0451.jpg, CIMG0452.jpg, CIMG0453.jpg. Der Befehl um diese drei Dateien automatisch runterzuladen, lautet so:

curl -o /pfad/zum/zielordner/CIMG045#1.jpg beispielsite.de/fotos/CIMG045[1-3].jpg

Schon beginnt der automatische Download. Entscheidend sind dabei die beiden Variablen #1 und [1-3]. Letztere zeigt dabei die Zahlenspanne an, die abgerufen werden soll. Auch bspw. [003-147] oder [a-z] wären möglich. Der aktuelle Wert der Variable [1-3] wird automatisch in die Variable #1 geschrieben, wodurch die Beibehaltung des Namens nach dem Download ermöglicht wird.

Detail-Erklärung

Code Bedeutung
curl startet das Programm
-o Setzt die Option, dass es einen Output geben soll
/pfad/zum/zielordner/ Pfad zum Ziel-Speicherort auf dem lokalem Rechner
#1 Variable. Gibt den Wert (zB die Nummer) der Datei an, die gerade runtergeladen wird
beispielsite.de/fotos/ Adresse der Dateien
[1-3] Variable. Zahlen-Bereich 1 bis 3 wird abgerufen

Weiter Syntax-Beispiele zur Verwendung von cURL gibt es hier: Manual — curl usage explained (Englisch)

Kommentieren: