Posts Tagged ‘automatisierung’

h1

Effektiv downloaden mit Curl

April 11, 2012

Wenn man viele Dateien auf einmal runterladen möchte, die einen ähnlichen Namen haben (sich im Idealfall nur durch eine Nummer unterscheiden), dann bietet es sich an, dafür das Kommandozeilen-Programm Curl zu verwenden.

Zunächst muss man die Adressen der Dateien herausfinden und nach welchem Schema diese benannt sind. Will man zum Beispiel 50 Bilder, die durchnummeriert sind, im aktuellen Verzeichnis speichern, muss man den folgenden Befehl ausführen. Die Option -O ist notwendig, damit wirklich Dateien erstellt werden.

curl -O "http://example.com/images/image[001-050].jpg"

Man kann so auch viele Verzeichnisse durchgehen und die Ordnerstruktur erhalten. Die folgende Zeile erstellt zehn durchnummerierte Ordner, in denen sich jeweils 50 Bilder befinden. Dabei steht #1 für den ersten Zähler und #2 für den zweiten. Man kann natürlich die Benennung entsprechend anpassen.

curl "http://example.com/images/[01-10]/image[001-050].jpg" \
-o "#1/#2.jpg" --create-dirs

Es kann sein, dass man dabei leere Dateien erstellt, wenn die  angegebene URL gar nicht existiert. Möglicherweise sind in einigen Ordnern nur 40 Bilder vorhanden sind. Mit dem find-Befehl kann man diese leeren Dateien automatisiert löschen. Der folgende Befehl löscht alle jpg-Dateien im aktuellen Ordner, die kleiner als 1000 Byte sind.

find . -name "*.jpg" -size -1000c -exec rm {} \;

Allerdings muss man sehr vorsichtig sein, wenn man find zum Löschen verwendet. Man sollte vorher sichergehen, dass es nur die richtigen Dateien trifft.