একটি তালিকা থেকে ফাইলগুলি ডাউনলোড করুন


130

আমি কীভাবে ফাইলগুলি (যে কোনও পাঠ্য ফাইলে তালিকাবদ্ধ রয়েছে) wgetবা অন্য কোনও স্বয়ংক্রিয় উপায়ে ডাউনলোড করতে পারি ?

নমুনা ফাইল তালিকা:

www.example.com/1.pdf
www.example.com/2.pdf
www.example.com/3.pdf

উত্তর:


227

এইটির জন্য উইজেটের অন্তর্নির্মিত পতাকা রয়েছে: wget -i your_list আপনি পড়ার মাধ্যমে এই জাতীয় জিনিসটি খুঁজে পেতে পারেনman wget


@ aurianimus যদি আমি লিঙ্ক 2 এড়িয়ে যেতে চাই তবে কিভাবে?
আলহালাল

এই সমাধানটি আমার পক্ষে কাজ করেছিল। এটি ক্রমান্বয়ে ডাউনলোড করার সাথে আমি খুশি ছিলাম সমান্তরালে নয়।
asiby

85

তাদের সাথে সমান্তরালে পান

cat urlfile | parallel --gnu "wget {}"

ডিফল্টরূপে এটি আপনার যতটা প্রক্রিয়া রয়েছে ততগুলি চালিত হবে, আপনি যদি সমান্তরাল পরে "-j 20" যোগ করে দ্রুত এগুলি নীচে টানতে চান তবে আপনি সম্ভবত এটি আর একটি 10x পর্যন্ত র‌্যাম্প করতে পারেন।


1
আমি একজনের পক্ষে এটি কাজ করতে পারি না। আমি কোনও প্রকার ছড়িয়ে পড়ে দেখছি না, উইজেটের জন্য প্রতিধ্বনি বদলানো কিছুতেই আউটপুট দেয় না
জাকুব বোচেনস্কি

: কিছু আগে ubuntus এই স্থান একটি মূক খুঁত আছে stackoverflow.com/questions/16448887/...
meawoppl

2
'এটি আপনার যতগুলি প্রসেস রয়েছে তত বেশি প্রসেসের' সাথে নোট করুন - নেটওয়ার্ক ব্যান্ডউইথ সম্ভবত সীমিতকরণের কারণ হতে চলেছে।
উইলফ

2
এটা সত্যিই নির্ভর করে। বিশাল সংখ্যক ছোট ফাইলের জন্য এটি প্রায় পরিমাণের ক্রম হতে পারে দ্রুত, কারণ স্থানান্তর সময়ের বেশিরভাগ সময় হ্যান্ডশেক / টিসিপি রাউন্ড ট্রিপ হয়। এছাড়াও আপনি যেখানে ছোট ছোট হোস্টগুলি থেকে ডাউনলোড করছেন এমন পরিস্থিতিতে, কখনও কখনও প্রতি সংযোগ ব্যান্ডউইথ সীমাবদ্ধ থাকে, সুতরাং এটি জিনিসগুলিকে ধাক্কা খাবে।
meawoppl

2
আপনি যদি বিভিন্ন হোস্টনামের সাথে সম্পর্কিত ইউআরএলগুলির (হোস্টনাম ছাড়াই রিসোর্স আইডি) একটি তালিকা ব্যবহার করতে চান তবে এটি বেশ কার্যকর example সমান্তরাল --gnu "wget হয় example1.com {}" এবং বিড়াল urlfile | সমান্তরাল --gnu "wget উদাহরণ2.com .com }"
মরিসিও সানচেজ


9

parallelএকটি অন্তর্নির্মিত পতাকা রয়েছে --arg-file( -a) যা উত্স হিসাবে একটি ইনপুট-ফাইল ব্যবহার করবে, যাতে আপনি এড়াতে পারেন cat |। তুমি ব্যবহার করতে পার

parallel --gnu -a urlfile wget

বা সহজভাবে parallel --gnu wget < urlfile


5
awk '{print "http://" $0;}' list.txt | xargs -l1 wget

যেখানে list.txt হল আপনার তালিকা ফাইল


4

আমি ফ্লোরিয়ান ডিয়েশের উত্তর দেখেছি।

bqcকমান্ডের প্যারামিটারটি অন্তর্ভুক্ত করে আমি এটি কাজ করতে পেরেছি ।

xargs -i wget -bqc 'http://{}' < download.txt

সমস্ত ডাউনলোডগুলি পটভূমিতে সমান্তরালে শুরু হয়েছিল।

  • -b: পটভূমি। শুরু করার সাথে সাথে পটভূমিতে যান
  • -q: শান্ত। উইজেটের আউটপুট বন্ধ করুন
  • -c: চালিয়ে যান। আংশিক-ডাউনলোড করা ফাইল পাওয়া চালিয়ে যান

1

লিঙ্ক ফাইল লিংক। Txt

সমস্ত লিঙ্ক ফাইল লোড ডাউন কমান্ড

cat links.txt | wget -i

3
এটা কাজ করে না. wget -i links.txtসঠিক আদেশ।
হ্যারি

না এটি সঠিক আদেশ নয়। ডান কমান্ডটি হ'ল: "বিড়াল লিংকগুলি। টেক্সট | উইজেট -i"
ড্রিমকোডার

0

আমি কেবল এটি পরীক্ষা করেছি:

xargs -a download_file -L1 wget

এটা আমার জন্য কাজ করে. Txt ফাইলের ভিতরে লিঙ্কগুলি পৃথক লাইনে থাকতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.