ডিফল্টরূপে, উইজেট এমন কোনও ফাইলে লিখেন যার নাম আপনি যে URL টি দিয়েছিলেন তার শেষ উপাদান। অনেক সার্ভার ইউআরএলগুলিকে http://www.url1.com/app?q=123&gibb=erish&gar=ble
আলাদা আলাদা ইউআরএল পছন্দমতো ফাইল নামের মত পুনর্নির্দেশ করে http://download.url1.com/files/something.pdf
। আপনি বিকল্পটি পাস করার something.pdf
পরিবর্তে পুনঃনির্দেশিত ইউআরএল (ie ) থেকে নামটি ব্যবহার করতে উইজেটকে বলতে পারেন । এটি ডিফল্ট মোড নয় কারণ, যদি অযত্নে ব্যবহার করা হয় তবে এটি বর্তমান ডিরেক্টরিতে একটি অপ্রত্যাশিত ফাইলের নামটি ওভাররাইট করতে পারে; তবে আপনি যদি সার্ভারকে বিশ্বাস করেন বা কোনও মূল্যবান ফাইল নেই এমন কোনও ডিরেক্টরিতে কাজ করছেন তবে সাধারণত সঠিকভাবে ব্যবহৃত জিনিস।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
আপনি একটি স্ট্রিং এই স্নিপেট করা।
আপনি যদি ইউআরএল ব্যতীত অন্য কিছু নির্দিষ্ট করতে না চান এবং আপনি সার্ভার থেকে ভাল নাম পেতে না পারেন তবে আপনি ফাইলের ধরণটি অনুমান করতে পারেন এবং কমপক্ষে অর্থবহ এক্সটেনশনগুলি পাওয়ার চেষ্টা করতে পারেন।
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
you এটি আপনার নিজের তালিকা সরবরাহ করার পরিবর্তে:
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 এবং অবশ্যই একটি ফাইলের নাম, সঙ্গে একটি লাইন।