2012-05-13 9 views
8

मैं छवियों की एक श्रृंखला डाउनलोड करने के लिए इस आदेश का उपयोग करें:डाउनलोड से पहले फ़ाइल अस्तित्व की जांच करने के लिए कर्ल कैसे बताना है?

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 -डेले 1 http: // डोमेन/छवि [0-100] .jpg -O छवि # 1.jpg -z छवि # 1.jpg – Tobias

5

कर्ल के साथ ऐसा करने के बारे में कोई विचार नहीं है, लेकिन आप कर्ल कमांड चलाने से पहले इसे बैश के साथ देख सकते हैं।

for FILE in FILE1 FILE2 … 
do 
    if [[ ! -e $FILE ]]; then 
    # Curl command to download the image. 
    fi 
done 
संबंधित मुद्दे