আমি এইচটিটিপি-র মাধ্যমে একটি রিমোট ফাইলের সময় পরিবর্তনের সময় / তারিখটি ফাইলের জন্য একটি সাধারণ বাশ স্ক্রিপ্ট তৈরি করছি।
উদাহরণ ফাইল: 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
প্রায়শই ব্যবহার করে "সর্বশেষ-সংশোধিত" এর একটি আলাদা কেস রয়েছে।