2012-05-13 6 views
8

Ich benutze diesen Befehl, um eine Reihe von Bildern zum Download:Wie kann man curl informieren, die Datei vor dem Download zu überprüfen?

curl -O --max-time 10 --retry 3 --retry-delay 1 http://site.com/image[0-100].jpg 

Einige Bilder sind beschädigt, so dass ich sie löschen.

for i in *.jpg; do jpeginfo -c $i || rm $i; done 

Wie zu curl, Datei Existenz vor dem Download zu überprüfen?

kann ich diesen Befehl verwenden curl überschreiben vorhandene Bilder zu verhindern:

chmod 000 *.jpg 

Aber ich will nicht erneut herunterladen sie.

Antwort

13

Wenn die Zielressource ist statisch, curl hat eine Option -z nur eine neuere Zielkopie zum Download bereit.

Anwendungsbeispiel:

curl -z image0.jpg http://site.com/image0.jpg 

Ein Beispiel für Ihren Fall:

for i in $(seq 0 100); do curl -z image$i.jpg -O --max-time 10 --retry 3 --retry-delay 1 http://site.com/image$i.jpg; done

+1

... oder mit einem Befehl: curl --max Zeit 10 --retry 3 --retry -delay 1 http: // Domäne/Bild [0-100] .jpg -O Bild # 1.jpg -z Bild # 1.jpg – Tobias

5

Keine Ahnung, es mit Curl zu tun, aber Sie könnten es mit Bash überprüfen, bevor Sie den Curl-Befehl ausführen.

for FILE in FILE1 FILE2 … 
do 
    if [[ ! -e $FILE ]]; then 
    # Curl command to download the image. 
    fi 
done 
Verwandte Themen