আমি এইচটিটিপি-র মাধ্যমে একটি রিমোট ফাইলের সময় পরিবর্তনের সময় / তারিখটি ফাইলের জন্য একটি সাধারণ বাশ স্ক্রিপ্ট তৈরি করছি।
উদাহরণ ফাইল: http://example.com/bar/example.pdf
আসল ফাইলটি ডাউনলোড না করেই কি এটি করা যায় ? তা না হলে সেরা বিকল্প কী?
আমি এইচটিটিপি-র মাধ্যমে একটি রিমোট ফাইলের সময় পরিবর্তনের সময় / তারিখটি ফাইলের জন্য একটি সাধারণ বাশ স্ক্রিপ্ট তৈরি করছি।
উদাহরণ ফাইল: http://example.com/bar/example.pdf
আসল ফাইলটি ডাউনলোড না করেই কি এটি করা যায় ? তা না হলে সেরা বিকল্প কী?
উত্তর:
সত্যি বলতে, সরাসরি নয়।
ফাইল সম্পর্কে তথ্য পেতে আপনাকে দূরবর্তী সাইট থেকে ডেটা আনতে হবে। সাধারণত এটি একটি HEADঅনুরোধ দিয়ে সম্পন্ন করা হয় , তবে কিছু (বেশিরভাগ?) সার্ভারগুলি এটি সঠিকভাবে প্রয়োগ করে পুরো ফাইলটি বিতরণ করে নি, GETঅনুরোধ করার মতো । ধরে নিচ্ছি যে আপনি curlইনস্টল করেছেন:
curl -s -v -X HEAD http://foo.com/bar/baz.pdf 2>&1 | grep '^< Last-Modified:'
আপনি যা চান তা আপনাকে দিতে পারে তবে যেমন বলা হয়েছে এটি সার্ভারের উপর নির্ভর করে।
HEAD। তবুও, সেই সাইটগুলি আপনাকে ফলাফল দেবে, কারণ তাদের সবকিছু সরবরাহ করার কথা রয়েছে।
--headবিকল্পটি -X HEADএর আরও সংক্ষেপের পরিবর্তে ব্যবহার করার পরামর্শ দিচ্ছি যাতে কমান্ডটি হয়ে উঠতে পারে: curl -s -v --head http://foo.com/bar/baz.pdf 2>&1 | grep '^< Last-Modified:'
curl -svX HEADআরও বেশি পরিলক্ষিত ...
সার্ভারের প্রতিক্রিয়াটির সাধারণত Last-Modifiedক্ষেত্র থাকে, আপনি ফাইলটি ডাউনলোড না করে এটি পরীক্ষা করতে পারেন। ব্যবহারের কোন প্রয়োজন নেই -X HEAD, সেখানে একটি বিশেষ বিকল্প -Iযে জন্য ( -sশুষে অগ্রগতি আউটপুট) :
curl -sI http://example.com/bar/example.pdf | grep -i Last-Modified
এছাড়াও আমার ক্ষেত্রে কোনও কার্ল ইনস্টল করা হয়নি (আমি এমবেডড ডিভাইসের জন্য একটি স্ক্রিপ্ট করছি) , ঠিক আছে wget। উইজেটের সাথে উপায়:
wget --server-response --spider http://example.com/bar/example.pdf 2>&1 | grep -i Last-Modified
--server-responseকপি করে প্রিন্ট হেডার, এবং --spiderবিকল্প শক্তির পেজ ডাউনলোড না, বরং তাদের অস্তিত্ব চেক করুন।
curlগৃহীত উত্তরটির চেয়ে উত্তম উত্তর। সম্ভবত grep -iপ্রায়শই ব্যবহার করে "সর্বশেষ-সংশোধিত" এর একটি আলাদা কেস রয়েছে।