পুনঃনির্দেশিত হলে সঠিক নাম সহ একটি ফাইল কীভাবে উইজেট করবেন?


117

তাই গুগল এবং সুপার ব্যবহারকারীর অনুসন্ধানের কিছুক্ষণ পরে (এবং ম্যান পেজগুলি স্ক্যান করে) আমি এমন কোনও কিছুর উত্তর খুঁজে নিতে পারিনি যা (আমার মনে হয়) সহজ হওয়া উচিত:

আপনি যদি এখানে যান:

http://www.vim.org/scripts/script.php?script_id=2340

এবং থিমটি ডাউনলোড করার চেষ্টা করুন:

http://www.vim.org/scripts/download_script.php?src_id=9750

তাই ভালো:

wget http://www.vim.org/scripts/download_script.php?src_id=9750

আপনি সম্ভবত একটি ফাইল বলা শেষ হবে download_script.php?src_id=9750

তবে আমি চাই এটি কল করা হোক molokai.vim, যদি আমি এই ফাইলটি ডাউনলোড করতে কোনও ব্রাউজার ব্যবহার করি তবে কি হবে।

পছন্দসই প্রভাবের জন্য আমাকে কী বিকল্পগুলি নির্দিষ্ট করতে হবে?

আমি কার্ল সমতুল্য কমান্ডের সাথেও ঠিক আছি।

উত্তর:


162
-O file
--output-document=file

ডকুমেন্টগুলি উপযুক্ত ফাইলগুলিতে লিখিত হবে না, তবে সমস্ত একসাথে একত্রিত করা হবে এবং ফাইলগুলিতে লিখিত হবে। যদি -ফাইল হিসাবে ব্যবহার করা হয় তবে দস্তাবেজগুলি স্ট্যান্ডার্ড আউটপুটে মুদ্রিত হবে, লিঙ্ক রূপান্তরটি অক্ষম করবে। ( ./-আক্ষরিক নামযুক্ত কোনও ফাইলের মুদ্রণের জন্য ব্যবহার করুন -.)

সুতরাং,

wget -O somefile.extension http://www.vim.org/scripts/download_script.php?src_id=9750

অথবা আপনি wgetযদি আপনার সংস্করণ দ্বারা সমর্থন করেন তবে - কনটেন্ট-ডিসপোশন বিকল্পটি ব্যবহার করে এটি কাজ করতে সক্ষম হতে পারেন।

wget --content-disposition http://www.vim.org/scripts/download_script.php?src_id=9750

ম্যান পৃষ্ঠা অনুসারে গুহাগুলি,

--content-disposition

যদি এটি সেট করা থাকে, তবে "সামগ্রী-বিশৃঙ্খলা" শিরোনামগুলির জন্য পরীক্ষামূলক (সম্পূর্ণরূপে কার্যকরী নয়) সমর্থন সক্ষম করা আছে। এটি বর্তমানে "হেড" অনুরোধের জন্য সার্ভারে অতিরিক্ত রাউন্ড-ট্রিপ করতে পারে এবং কয়েকটি বাগ থেকে ভুগছে বলে জানা যায়, এজন্য এটি বর্তমানে ডিফল্টরূপে সক্ষম হয় নি।

এই বিকল্পটি কিছু ফাইল-ডাউনলোডিং সিজিআই প্রোগ্রামগুলির জন্য দরকারী যা একটি ডাউনলোড করা ফাইলের নাম কী হতে হবে তা বর্ণনা করতে "সামগ্রী-বিশৃঙ্খলা" শিরোনাম ব্যবহার করে।

আপনি ব্যবহার করে এর সাথে একই স্বয়ংক্রিয় আচরণ অর্জন করতে পারেন curl,

curl -JLO http://www.vim.org/scripts/download_script.php?src_id=9750

-Oরিমোট নামটি ব্যবহার করে এবং URL টির পরিবর্তে বিষয়বস্তু-শিরোনাম শিরোনাম থেকে নামটি পেতে -Jবাধ্য করে -Oএবং -Lপ্রয়োজনে পুনঃনির্দেশগুলি অনুসরণ করে।


2
আমার উল্লেখ করা উচিত ছিল যে এটি স্বয়ংক্রিয় হওয়া দরকার
অডিও.জুম

আমি এটি যেমন বুঝতে পেরেছি, উইজেট সঠিকভাবে তা জানাতে ওয়েব পৃষ্ঠার উপর নির্ভর করে যদি URL কোনও ফাইলের দিকে নির্দেশ করে এবং বিষয়বস্তু প্রকাশের শিরোনাম ব্যবহার করে যা উইজেট পুরোপুরি সমর্থন করে না বা ব্যবহার করতে পারে তবে এটির কিছু আলাদাভাবে সংরক্ষণ করা দরকার be সুতরাং আপনি এটি উইজেটের সাহায্যে স্বয়ংক্রিয়ভাবে করতে পারবেন না। ওয়েব পৃষ্ঠার উপর নির্ভর করে কার্লের কম-বেশি সাফল্য থাকতে পারে।
এইটবিটটনি

বিন্দুটি জটিল পার্সিং ছাড়াই এই জিনিসগুলি স্ক্রিপ্ট করতে সক্ষম হবেন, কার্লটি ঠিক আছে তবে এখনও পর্যন্ত আমি এর জন্য কোনও শালীন বিকল্প সংগ্রহ করতে সক্ষম
হইনি

2
আহা - আমি ভুল, আপডেট উত্তর দেখুন। এই কারণেই স্ট্যাকেক্সচেঞ্জের সাইটগুলি ভাল কাজ করে - প্রত্যেকে কিছু না কিছু শিখে, এমনকি লোকেরা প্রশ্নের উত্তরও দেয়!
এইটবিটটনি

1
এটি আমার জন্য স্ট্যাকেক্সচেঞ্জ পডকাস্টের জন্য কাজ করেছে, যা আমাকে কিছুক্ষণ ধরেই তল্লাশি করে চলেছে। ধন্যবাদ।
রিচার্ড ক্যাম্পবেল

75

উইজেটের সাহায্যে আপনি এটি করতে পারেন:

wget --trust-server-names <url> 

সার্ভার আপনাকে প্রদত্ত সর্বশেষ ফাইলের নামটি ব্যবহার করে ফাইলটি সংরক্ষণ করতে।


2
আমি অবাক হই --trust-server-namesএবং এর মধ্যে পার্থক্যটি কী--content-disposition
জেমস'আউটওয়ালডুড

3
দেখে মনে হচ্ছে যে --trust-server-namesএটি কোনও পৃথক ফাইলে পুনঃনির্দেশ করে এবং --content-dispositionকোনও পুনঃনির্দেশের প্রয়োজন ছাড়াই প্রতিক্রিয়া শিরোনামে উল্লিখিত নামের সাথে ফাইলটির নাম দেয়।
আসফান্দ কাজী

1
এই ডিফল্ট কার্যকারিতা কেন হয় না?!?!
আশাবাদী

8
@ hopeseekr আপনি সাবধানে না দেখলে সার্ভারটি দুষ্টু হতে পারে এবং ফাইলটি .bashrc কল করতে পারে। list.gnu.org/archive/html/bug-wget/2012-04/msg00059.html
প্যাট্রিক কনহেডি

3

আপনি এরিয়া 2 সিও ব্যবহার করতে পারেন - এটি সামগ্রী-বিশৃঙ্খলা শিরোনামগুলির সাথে দুর্দান্তভাবে কাজ করে বলে মনে হচ্ছে।



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