কার্ল ব্র্যাক সিনট্যাক্স সহ একাধিক ফাইল ডাউনলোড করুন


17

আমি নিম্নলিখিত সিনট্যাক্স দ্বারা দুটি ফাইল ডাউনলোড করার চেষ্টা করছি:

curl -O http://domain/path/to/{file1,file2}

সমস্যাটি হ'ল কেবলমাত্র প্রথম ফাইলটি স্থানীয়ভাবে সংরক্ষণ করা হয় এবং দ্বিতীয়টি কেবল স্টডআউটে মুদ্রিত হয়েছিল।

আমি বুঝতে পেরেছি যে আমি যদি -Oএটি যুক্ত করি তবে এটি ঠিক কাজ করে:

curl -OO http://domain/path/to/{file1,file2}

তবে ফাইলগুলির সংখ্যা খুব বড় হলে এই অবৈধ নয়? উদাহরণ স্বরূপ,

curl -O http://domain/path/to/file[1,100]

আমার প্রশ্ন হ'ল, একসাথে একাধিক পৃথক ফাইল ডাউনলোড করার কোনও উপায় নেই curl(সঠিক সংখ্যার যোগ না করে -O)?


1
লুপের জন্য বা ব্যবহারের পরিবর্তে উইজেট ব্যবহার করছেন না কেন?
রুই এফ রিবেইরো

1
@ রুইএফরিবিয়েরো (1) হ্যাঁ, আমি লুপ ব্যবহার করতে পারি। curlএটি অর্জন করতে পারলে আমি কেবল কৌতূহলী । (২) আমি কেবল এইচটিটিপি (গুলি), এফটিপি প্রোটোকল যেমন এসএফটিপি বিবেচনা করছি না।
নাইট্রি

আমি বলতে চাইছি, এ জাতীয় শক্তিশালী হাতিয়ার হওয়ার কারণে, কেন curlএই শক্ত-কার্যক্ষম কার্যকারিতা থেকে ব্যর্থ হয়?
নাইট্রি

1
কেবল এটি পরিষ্কার করার জন্য যে {}এবং [](এবং এছাড়াও *এবং ?) বাক্য গঠন শেল গ্লোবিং / প্রসারণ, curlসেগুলি কখনই দেখতে পায় না, এটি একই রকমcurl url1 url2
ভোনব্র্যান্ড

উত্তর:


9

আপডেট: এটি কার্ল 7.19.0 এ প্রয়োগ করা হয়েছে। উত্তর দেখুন উত্তরগুলি।

ম্যান পেজ অনুসারে একাধিক ওএস ব্যবহার ব্যতীত আসল ফাইলের নাম রাখার কোনও উপায় নেই। বিকল্পভাবে আপনি নিজের ফাইলের নাম ব্যবহার করতে পারেন:

curl http://{one,two}.site.com -o "file_#1.txt"

ফলে http://one.site.comসংরক্ষণ file_one.txtএবং http://two.site.comসংরক্ষণ করা হয় file_two.txt

এমনকি একাধিক ভেরিয়েবলের মতো

curl http://{site,host}.host[1-5].com -o "#1_#2"

এর ফলে http://site.host1.comসংরক্ষণ করা site_1, http://host.host1.comসংরক্ষণ করা host_1ইত্যাদি saved


বা আপনি যেমন কিছু করতে পারেনcurl -$(printf 'O%.0s' {1..3}) http://domain/path/to/{file1,file2,file3}
ম্যাক্স কপলান

23

আমি বুঝতে পারি যে এই প্রশ্নের ইতিমধ্যে একটি স্বীকৃত উত্তর রয়েছে তবে আমি অনুভব করি যে এটি করার একটি উপায় আছে বলে আমার বোঝা উচিত।

--remote-name-allবিকল্প হিসাবে আপনি ব্যবহার আচরণ করে কার্ল বলে -Oবা --remote-nameপ্রতিটি ফাইল জন্য।

https://curl.haxx.se/docs/manpage.html#--remote-name-all

এই বিকল্পটি সংস্করণ 7.19.0 থেকে পাওয়া যায় since

https://curl.haxx.se/changes.html#7_19_0


0

কার্ল সহ একাধিক ফাইল ডাউনলোড করার বিকল্প উপায় রয়েছে:

urls="firstUrl secondUrl thirdUrl" 
for url in $urls
do
   curl -O "$url"
done

দ্রষ্টব্য : বাধ্যতামূলক স্থানটি বিভিন্ন ইউআরএল সীমাবদ্ধ করতে ব্যবহৃত হয়।

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