টারমিনাল বা স্ক্রিপ্ট থেকে ডিফল্ট অ্যাপলিকেশনের মাধ্যমে ফাইল ওপেন করার মোটামুটি অব্যর্থ উপায়

আমরা লিনাক্স বেইজড ডিস্ট্রিবিউশন গুলা যারা চালাই তারা অনেকেই টার্মিনাল ব্যবহারে অভ্যস্ত, GUI থাকার পরেও। অধিকাংশ ক্ষেত্রেই আমাদের একাধিক অ্যাপ থাকে একই কাজের জন্য। যেমন, ভিডিও প্লেব্যাকের জন্য VLC ছাড়াও আরও অনেক অ্যাপ থাকাটা অস্বাভাবিক না। এখন আপনি হয়ত বলবেন, আমি তো appname filename.extension এই ফরম্যাটে কমান্ড দিলেই যেকোন অ্যাপলিকেশন দিয়ে ওপেন করতে পারি। হ্যাঁ, তা পারেন। তবে এটার দুইটা সমস্যা আছে।
১। অ্যাপলিকেশন ভেদে আপনি আর ঐ টার্মিনাল উইন্ডোটা ব্যবহার নাও করতে পারেন
২। আপনি যদি কোন স্ক্রিপ্টের মাধ্যমে ওপেন করতে চান তাহলে আপানর স্ক্রিপ্টের ইউজারের কাছে যে ঐ অ্যাপ থাকবে তার কোন গ্যারান্টি নাই।

মূলত দুই নং পয়েন্টটার জন্যই অধিকাংশ সময়ই ঝামেলায় পড়তে হয়। ম্যাকে open নামে একটা কমান্ড দেখে মুগ্ধ হয়ে গেছিলাম। সুন্দর মত MIME Type দেখে ডিফল্ট অ্যাপলিকেশন দিয়ে এই কমান্ডটি ফাইল ওপেন করে ফেলে। এখন প্রশ্ন আসতে পারে, ভাই MIME Type আবার কি? সংক্ষেপে উত্তর দেই আমরা সাধারণত মনে করি একটা ফাইলের মধ্যে কি আছে তা মনে হয় ফাইলের এক্সটেনশন দেখে বুঝা যায়। কিন্তু আসলে বিষয়টা তা না। আমি কোন এক্সটেনশন ছাড়াও ফাইল রাখতে পারি এবং অনেক ক্ষেত্রেই এক্সটেনশন গুলা জাস্ট কন্টেইনার হিসাবেও কাজ করে। ফাইলের ভেতরে আসলে কি ধরনের ডাটা আছে, কোন কম্প্রেশন এলগোরিদম ব্যবহার করা হয়েছে এগুলা আসলে MIME Type দেখে বোঝা যায়। যেমন, একটা ইমেজ ফাইলের MIME Type হতে পারে ‘image/jpeg’, অর্থাৎ, ফাইলটি একটা ইমেজ আর এর কম্প্রেশন অ্যালগোরিদম হচ্ছে jpeg। তো এই প্রতিটা MIME Type এর জন্য আপানর অপারেটিং সিস্টেমের একটা ডেটাবেইজ আছে, যেখানে কোন MIME Type এর ফাইল কোন অ্যাপলিকেশন দিয়ে বাই ডিফল্ট ওপেন করা হবে তার একটা লিস্ট থাকে। সুতরাং আমরা যদি ইউজারের ডিফল্ট অ্যাপলিকেশন দিয়ে ফাইল ওপেন করতে চাই, তাহলে আমাদের এই ডেটাবেইজ থেকে ইনফরমেশন নিয়ে সম্পর্কিত অ্যাপটা কল করতে হবে।

ওকে, থিউরি বুঝা শেষ। খুব পেইনের কাজ মনে হচ্ছে তাই না? আসলে না। এইসব জিনিসপত্র হ্যান্ডেল করার জন্য ডেস্কটপ লিনাক্স ডিস্ট্রিবিউশন গুলাতে xdg-utils নামে একটা প্যাকেজ থাকে (সাধারণত, আমি এখনও এই প্যাকেজ ছাড়া কোন ডিস্ট্রিবিউশন দেখি নাই। আপনার জানা থাকলে অবশ্যই জানাবেন)। এই প্যাকেজের দ্বায়িত্বই হচ্ছে ডেটাবেজ টা ম্যানেজ করা আর ডিফল্ট অ্যাপলিকেশন সেট করা। xdg-utils প্যাকেজের সাথে একটা কমান্ড আছে ‘xdg-open’ এবং আশা করি কাজ বুঝে ফেলেছেন 😉

কমান্ডটির ব্যবহার,
xdg-open filename

ব্যাস, কাজ শেষ। 🙂

মাইম টাইপের ব্যাপরে প্রথমে শিখতে হয়েছিল একটা বিশাল বাঁশ খেয়ে। শিখিয়েছিলেন, লিজেন্ড বাবর ভাই। 🙂

কারও কোন প্রশ্ন বা অন্য কিছু জানার থাকলে কমেন্ট করতে পারেন। অথবা, আমাকে মেইল করতে পারেন [email protected] এ 🙂

4 thoughts on “টারমিনাল বা স্ক্রিপ্ট থেকে ডিফল্ট অ্যাপলিকেশনের মাধ্যমে ফাইল ওপেন করার মোটামুটি অব্যর্থ উপায়

Leave a Reply

Your email address will not be published. Required fields are marked *