2012-05-13 64 views
8

我用這個命令下載一系列圖像:如何告訴curl在下載之前檢查文件的存在?

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

有些圖像已損壞,所以我刪除它們。

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

如何告知curl在下載前檢查文件是否存在?

我可以使用這個命令來防止curl覆蓋現有圖片:

chmod 000 *.jpg 

但我不想重新下載。

回答

13

如果目標資源是靜態的,curl有一個選項-z只下載一個新的目標副本。

用例:

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

爲您的情況下的例子:

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

...或用一個命令:捲曲--max時間10 --retry 3 --retry -delay 1 http:// domain/image [0-100] .jpg -O image#1.jpg -z image#1.jpg – Tobias

5

不知道如何用curl來完成它,但是你可以在運行curl命令之前用Bash檢查它。

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