আমি কীভাবে সেই কার্লটি নির্দিষ্ট করতে পারি (কমান্ড লাইনের মাধ্যমে) কোনও ফাইল যদি এটি বিদ্যমান থাকে তবে ওভাররাইট করে?


11

আমি এই বাক্য গঠনতে কার্ল ব্যবহার করছি:

curl -o myfile.jpg http://mysite.com/myfile.jpg

আমি যদি এই আদেশটি দু'বার চালিত করি তবে আমি দুটি ফাইল পাই:

myfile.jpg
myfile-1.jpg

আমি কীভাবে সিআরএলকে বলতে পারি যে এটি উপস্থিত থাকলে ফাইলটি ওভাররাইট করা চাই?


5
পুনরুত্পাদন করা যায় না: curlকোন সিস্টেমে কোন সংস্করণ?
এনজোটিব

উত্তর:


22

ব্যবহার করুন:

curl http://mysite.com/myfile.jpg > myfile.jpg

2
এবং আগেই, নিশ্চিত হয়ে নিন যে আপনার কাছে noclobberবিকল্পটি সক্ষম করা নেই ( set +o noclobber)।
rozcietrzewiacz

0

আমি একই সমস্যার মুখোমুখি হয়েছি এবং সার্ভারের পক্ষের যা কিছু দেয় আমি একই ফাইলের নামটি পুনরায় ব্যবহার করতে চাই, আপনার ক্ষেত্রে আপনি ফাইলের নামটি পেতে পারেন 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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.