আমি একই সমস্যার মুখোমুখি হয়েছি এবং সার্ভারের পক্ষের যা কিছু দেয় আমি একই ফাইলের নামটি পুনরায় ব্যবহার করতে চাই, আপনার ক্ষেত্রে আপনি ফাইলের নামটি পেতে পারেন basename
➸ basename 'http://mysite.com/myfile.jpg'
myfile.jpg
তারপরে আপনি কোনও সহায়ক বাশ ফাংশন লিখতে পারেন:
➸ function download { name="$(basename $1)"; curl "$1" > "$name"; }
➸ download 'http://mysite.com/myfile.jpg'
তবে আমার ক্ষেত্রে ফাইলের নামটিও url এর অংশ নয়, এটি সামগ্রী-স্বভাবের সাথে আসে; কার্ল সাথে কমান্ড লাইন হয়
$ curl -fSL -R -J -O 'http://some-site.com/getData.php?arg=1&arg2=...'
-fSL
সার্ভার পক্ষ 302 পুনঃনির্দেশ দেয় যদি আপনি এটি পরিচালনা করে তা উপেক্ষা করতে পারেন ; -R
সার্ভার প্রান্তের টাইমস্ট্যাম্প জন্য, -J
সার্ভার প্রান্তের বিবেচনা Content-Disposition
, এবং -O
পরিবর্তে টার্মিন্যালে ডাম্পিং ডাউনলোডের আচরণ পাল্টাতে;
যাইহোক, এটি এখনও ফাইল নাম উপস্থিত থাকলে ওভাররাইট অস্বীকার ভোগ করে; আমি চাই সার্ভারের সাইড Last-Modified
টাইমস্ট্যাম্পটি আরও নতুন করে লিখলে;
এটি করতে সক্ষম একটি উইজেট সমাধান দিয়ে শেষ হয়:
$ wget -NS --content-disposition 'http://some-site.com/getData.php?arg=1&arg2=...'
-N
সার্ভার প্রান্তের tiemstamp চেক করুন এবং ওভাররাইট শুধুমাত্র যখন সার্ভার প্রান্তের নতুন সংস্করণ রয়েছে হয়; শিরোনাম --content-disposition
বিবেচনা করা হয় Content-Disposition
; এবং উইজেটের ডিফল্ট আচরণ হ'ল ডাউনলোড করা, সার্ভার পাশ থেকে দেওয়া ফাইল নাম।
আপনার ক্ষেত্রে, যদি আপনি টাইমস্ট্যাম্প যত্ন না করেন, এটি ঠিক
$ wget -O myfile.jpg http://mysite.com/myfile.jpg
curl
কোন সিস্টেমে কোন সংস্করণ?