डिफ़ॉल्ट रूप से, wget उस फ़ाइल को लिखता है जिसका नाम उस URL का अंतिम घटक है जिसे आप पास करते हैं। कई सर्वर http://www.url1.com/app?q=123&gibb=erish&gar=bleएक अलग दिखने वाले URL जैसे एक अच्छे दिखने वाले फ़ाइल नाम के साथ URL को पुनर्निर्देशित करते हैं http://download.url1.com/files/something.pdf। आप विकल्प को पास something.pdfकरने के बजाय रीडायरेक्ट किए गए URL (यानी ) से नाम का उपयोग करना भूल सकते हैं । यह डिफ़ॉल्ट मोड नहीं है, क्योंकि यदि लापरवाही से उपयोग किया जाता है, तो यह वर्तमान निर्देशिका में एक अप्रत्याशित फ़ाइल नाम को अधिलेखित कर सकता है; लेकिन अगर आप सर्वर पर भरोसा करते हैं या किसी अन्य कीमती फाइलों वाली निर्देशिका में काम कर रहे हैं, तो आमतौर पर उपयोग करने के लिए सही चीज है।app?q=123&gibb=erish&gar=ble--trust-server-names--trust-server-names
कुछ सर्वर Content-Dispositionफ़ाइल नाम निर्दिष्ट करने के लिए पुनर्निर्देशन के बजाय हेडर का उपयोग करते हैं। --content-dispositionइस फ़ाइल के नाम का उपयोग करने के लिए विकल्प पास करें।
इस प्रकार:
wget --content-disposition --trust-server-names -i list_of_urls
यदि आपको अभी भी फ़ाइल के अच्छे नाम नहीं मिल रहे हैं, तो आप अपना खुद का विवरण देना चाहते हैं। मान लीजिए कि आपके पास एक फाइल है जिसमें लाइनें हैं जैसे
http://www.url1.com/app?q=123&gibb=erish&gar=ble foo.pdf
http://www.url2.com/app?q=111&wha=tcha&mac=allit bar.txt
निर्दिष्ट फ़ाइल नामों के लिए फ़ाइलें डाउनलोड करने के लिए, यह मानते हुए कि URL में या फ़ाइल नामों में कोई व्हाट्सएप वर्ण नहीं हैं:
err=0
while read -r url filename tail; do
wget -O "$filename" "$url" || err=1
done <list_of_urls_and_file_names
errअगर सभी डाउनलोड सफल रहा और 1 अन्यथा, आप कर सकते हैं चर 0 होता है return $errअगर आप इस टुकड़ा एक समारोह में डाल या exit $errयदि आप एक स्ट्रिंग में इस स्निपेट डाल दिया।
यदि आप URL के अलावा कुछ भी निर्दिष्ट नहीं करना चाहते हैं, और आपको सर्वर से अच्छे नाम नहीं मिल सकते हैं, तो आप फ़ाइल प्रकार का अनुमान लगा सकते हैं और कम से कम सार्थक एक्सटेंशन प्राप्त करने का प्रयास कर सकते हैं।
err=0
n=1
while read -r url; do
if wget -O tmpfile "$url"; then
ext=data
case $(file -i tmpfile) in
application/pdf) ext=pdf;;
image/jpeg) ext=jpg;;
text/html) ext=html;;
text/*) ext=txt;;
esac
mv tmpfile "$n.$ext"
else
err=1
fi
n=$((n+1))
done
इच्छानुसार अन्य प्रकार जोड़ें। यदि आपके fileआदेश में -mविकल्प नहीं है , तो इसे छोड़ दें, और जांचें कि fileआप जिस फ़ाइल प्रकार में रुचि रखते हैं, उसके लिए आपके सिस्टम पर क्या रिटर्न मिलता है। यदि आपके पास /etc/mime.typesअपने सिस्टम पर फ़ाइल है, तो आप एक्सटेंशन से MIME प्रकारों के संघों को पढ़ सकते हैं। इसके बजाय अपनी सूची की आपूर्ति:
n=1
while read -r url; do
if wget -O tmpfile "$url"; then
mime_type=$(file -m tmpfile)
ext=$(awk "$1 == \"$mime_type\" {print \$2; exit} END {print \"data\"}" /etc/mime.types)
mv tmpfile "$n.$ext"
else
err=1
fi
n=$((n+1))
done
wget -O $2 $1। List_of_urls फ़ाइल में, प्रत्येक पंक्ति को एक url, व्हॉट्सएप, एक फ़ाइल नाम (जैसे) बनाते हैं,http://url1/blah&blah=whatever some.pdfफिर ऊपर दिए गए उपयोग के साथ ही, wget लाइन को प्रतिस्थापित करते हैं./thatscript.sh $url। इस मामले$urlमें वास्तव में एक url और फ़ाइल नाम के साथ एक पंक्ति होती है, निश्चित रूप से