2012-05-13 27 views
8

tôi sử dụng lệnh này để tải về một loạt các hình ảnh:Làm thế nào để nói curl để kiểm tra sự tồn tại của tập tin trước khi tải xuống?

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

Một số hình ảnh bị hỏng, vì vậy tôi xóa chúng.

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

Cách kiểm tra trước khi tải xuống curl?

tôi có thể sử dụng lệnh này để ngăn chặn curl ghi đè hình ảnh hiện có:

chmod 000 *.jpg 

Nhưng tôi không muốn tái tải chúng.

Trả lời

13

Nếu tài nguyên đích tĩnh, curl có tùy chọn -z để chỉ tải xuống bản sao đích mới hơn. Ví dụ

Cách sử dụng:

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

Một ví dụ cho trường hợp của bạn:

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

... hoặc với một lệnh: curl max-thời gian 10 --retry 3 --retry -delay 1 http: // tên miền/hình ảnh [0-100] .jpg -O hình ảnh # 1.jpg -z hình ảnh # 1.jpg – Tobias

5

Không có ý tưởng về làm điều đó với curl, nhưng bạn có thể kiểm tra nó với Bash trước khi bạn chạy lệnh curl.

for FILE in FILE1 FILE2 … 
do 
    if [[ ! -e $FILE ]]; then 
    # Curl command to download the image. 
    fi 
done 
Các vấn đề liên quan