curl
इसके बजाय का उपयोग करने पर विचार करें wget
:
curl -o "$file" -z "$file" "$uri"
man curl
कहते हैं:
-z
/ --time-cond
<दिनांक अभिव्यक्ति>
(HTTP / FTP) एक ऐसी फ़ाइल का अनुरोध करें, जिसे दिए गए समय और दिनांक से बाद में संशोधित किया गया है, या उस समय से पहले संशोधित किया गया है। दिनांक की अभिव्यक्ति सभी प्रकार के तार तार हो सकते हैं या यदि यह किसी भी आंतरिक लोगों से मेल नहीं खाता है, तो इसके बजाय दिए गए फ़ाइल नाम से समय प्राप्त करने की कोशिश करता है।
यदि $file
आवश्यक रूप से पहले से मौजूद नहीं है, तो आपको उपयोग करते हुए -z
ध्वज सशर्त का उपयोग करने की आवश्यकता होगी test -e "$file"
:
if test -e "$file"
then zflag="-z '$file'"
else zflag=
fi
curl -o "$file" $zflag "$uri"
(ध्यान दें कि हम $zflag
यहां के विस्तार को उद्धृत नहीं करते हैं, क्योंकि हम चाहते हैं कि यह 0 या 2 टोकन से विभाजित हो जाए)।
यदि आपका शेल सरणियों (जैसे बाश) का समर्थन करता है, तो हमारे पास एक सुरक्षित और क्लीनर संस्करण है:
if test -e "$file"
then zflag=(-z "$file")
else zflag=()
fi
curl -o "$file" "${zflag[@]}" "$uri"