কার্ল কমান্ড সহ নির্দিষ্ট ফোল্ডারে ফাইল সংরক্ষণ করুন


182

শেল স্ক্রিপ্টে, আমি কিছু URL থেকে একটি ফাইল ডাউনলোড করতে এবং এটি একটি নির্দিষ্ট ফোল্ডারে সংরক্ষণ করতে চাই। curlকমান্ড সহ একটি নির্দিষ্ট ফোল্ডারে ফাইল ডাউনলোড করার জন্য আমার নির্দিষ্ট সিআইএল পতাকাটি কী ব্যবহার করা উচিত , বা অন্যভাবে কীভাবে আমি এই ফলাফলটি পাব?


দেখে মনে হবে বাশ প্রোগ্রামিং প্রোগ্রামিং ...
rjurney

উত্তর:


279

আমি মনে করি না আপনি কার্ল করার জন্য কোনও পথ দিতে পারেন, তবে আপনি লোকেশনটিতে সিডি করতে পারেন, ডাউনলোড এবং সিডি ফিরে করতে পারেন।

cd target/path && { curl -O URL ; cd -; }

বা সাবশেল ব্যবহার করে।

(cd target/path && curl -O URL)

উভয় পথই কেবল পথের অস্তিত্ব থাকলে ডাউনলোড হবে। -Oরিমোট ফাইলের নাম রাখে। ডাউনলোডের পরে এটি আসল অবস্থানে ফিরে আসবে।

আপনার যদি স্পষ্টভাবে ফাইলের নাম সেট করতে হয় তবে আপনি ছোট -oবিকল্পটি ব্যবহার করতে পারেন :

curl -o target/path/filename URL

2
আমার এই কমান্ডটি রয়েছে: কার্ল -লোক basename /packages" github.com/ziyaddin/xampp/archive/master.zip "। তবে এটি বলেছে যে ভুল ফাইল নাম ->basename /packages
জিয়াদ্দিন সাদিগোভ

10
আপনি (cd target/path; curl -O URL)
এগুলির

9
এই দুটির মধ্যে পার্থক্য কী? প্রথমটি একটি সিডি ডিরেক্টরিতে থাকে এবং ফাইলটি ডাউনলোড করে, তারপরে সিডি আউট করে। দ্বিতীয়টি বর্তমান ডিরেক্টরিতে থাকে এবং নির্দিষ্ট স্থানে ফাইল কার্ল করে। দ্বিতীয়টি আরও সহজ বলে মনে হচ্ছে।
হেনরি ঝু

9
@ হেনরিঝু প্রথম একটিতে ফাইলের নাম সার্ভারে থাকা ফাইলের নাম থেকে পাওয়া যায়। দ্বিতীয়টিতে আপনি যে সামগ্রীটি ডাউনলোড করেছেন সেটির নাম আপনি সরবরাহ করেছেন re
টার্টলমনভ

4
আমি সত্যিই একটি ডিরেক্টরি নির্দিষ্ট করার জন্য একটি বিকল্প চাই, তবে সার্ভারের ফাইলের নামটি ব্যবহার করুন। দেখে মনে হচ্ছে এটি ব্যবহার cdকরা এখন সেরা বিকল্প, যদিও এটি সামান্য ব্যর্থ মনে হয়।
স্টকবি

4

curlএটির জন্য কোনও বিকল্প নেই (ফাইলের নামটিও নির্দিষ্ট করে না দিয়ে), তবে wgetতা করে। ডিরেক্টরি আপেক্ষিক বা পরম হতে পারে। এছাড়াও, ডিরেক্টরিটি উপস্থিত না থাকলে স্বয়ংক্রিয়ভাবে তৈরি করা হবে।

wget -P relative/dir "$url"

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