অনুশীলন
এ পর্যায়ে আমরা এই অধ্যায়ে জানা কমান্ডগুলো একটু ব্যবহার করে দেখবো। কিন্তু আমরা চাইনা কম্পিউটারের অন্যসব তথ্য বা ফাইল ক্ষতিগ্রস্থ করতে। তাই প্রথমে হোম ডিরেক্টরিতে playground নামে একটি ডিরেক্টরি করে নিই:
প্রথমে cd ~ কমান্ড দিয়ে আমরা নিশ্চিত হয়ে নিলাম আমরা হোম ডিরেক্টরিতেই আছি এবং তারপর mkdir playground কমান্ড দিয়ে আমরা playground নামে একটি ডিরেক্টরি বা ফোল্ডার তৈরি করলাম। আসুন, আমরা এবার playground ডিরেক্টরিতে ঢুকি এবং dir1 ও dir2 নামে দুটো ডিরেক্টরি তৈরি করি:
লক্ষ্য করুন, আমরা একটি কমান্ডেই ডিরেক্টরিদুটো তৈরি করেছি।
এবার কিছু তথ্য বা ফাইল আনা যাক। আমরা /etc ডিরেক্টরি থেকে passwd ফাইলটি বর্তমান ডিরেক্টরিতে কপি করে আনি:
আমরা cp কমান্ডটির দুটি আর্গুমেন্ট দিয়েছি। প্রথমে সোর্স আইটেম হিসেবে /etc/passwd অর্থাৎ রুট ডিরেক্টরিতে যে etc ডিরেক্টরি তার passwd ফাইলটি এবং শেষে ডেস্টিনেশন হিসেবে '.' চিহ্ন যা দিয়ে বর্তমান ডিরেক্টরি বুঝায়। এবার **ls -l দিয়ে বর্তমান ডিরেক্টরিতে কি কি আছে বিস্তারিত দেখে নেয়া যাক:
এবার আসুন, cp কমান্ডের -v অপশনটি(verbose) ব্যবহার করে দেখি:
এবার কিন্তু কোন ফাইল কোথায় কপি করছে তা আমাদের জানিয়েছে। এবার -i অপশন(interactive) ব্যবহার করে দেখি:
যেহেতু আমাদের এখানে passwd নামে একটি ফাইল আগে থেকেই ছিল, -i অপশন ব্যবহারের ফলে আমাদের কাছে অনুমতি চাইছে ফাইলটি ওভাররাইড করা হবে কিনা। আমরা 'y' চাপলে ওভাররাইড করবে আর অন্য যেকোনোকিছু চাপলে ওভাররাইড করবে না।
এবার আমরা mv কমান্ডের মাধ্যমে passwd ফাইলটির নাম পরিবর্তন করে fun নাম দিই:
আসুন এবার fun নামের ফাইলটিকে সবগুলো ডিরেক্টরিতে মুভ করে আবার আগের জায়গায় ফেরত আনি। প্রথমে মুভ করি dir1 ডিরেক্টরিতে:
এবার dir1 ডিরেক্টরি থেকে fun ফাইলটি dir2 ডিরেক্টরিতে মুভ করি:
এবার dir2 থেকে বর্তমান ডিরেক্টরি অর্থাৎ ফাইলটির প্রাথমিক অবস্থানে মুভ করি:
এবার fun ফাইলটির একটি করে হার্ডলিঙ্ক তৈরী করা যাক বর্তমান ডিরেক্টরি ও dir1 ও dir2 ডিরেক্টরিতে:
এবার ls -l দিয়ে আমাদের playground এর বর্তমান অবস্থা জেনে নেয়া যাক:
লক্ষ্য করুন, ২য় কলামে fun ও fun-hard উভয়ের একই সংখ্যা অর্থাৎ 4 আছে। যার অর্থ হচ্ছে ওই ফাইলটির মোট চারটি হার্ডলিঙ্ক আছে। তাছাড়া ফাইলসাইজের জায়গায় উভয়ের সাইজ একই। তাহলে উভয়ই কি একই ফাইল? নাও হতে পারে। এটা বের করতে আরো গভীরে যেতে হবে।
যখন হারডলিঙ্কের কথা ভাবছি তখন কল্পনা করুন যে একটা ফাইলের দুটো অংশ হয়। হার্ডডিস্কে ব্লকের পর ব্লক তথ্য সাজিয়ে তথ্যের অংশ যাকে ইনোড(inode) বলে। এবং একটি নামের অংশ যা ওই ইনোডের সাথে আবদ্ধ। আমরা যখন হার্ডলিঙ্কিং করি তখন আসলে ওই ফাইলের ইনোডের জন্য আরো একটি নতুন নাম দিই। অর্থাৎ দুটি ফাইলের ইনোড একই হলে ফাইল দুটি আসলে একটিই ফাইল।
ইনোড নম্বর দেখতে ls -l এর সাথে -i অপশনটি যুক্ত করতে হয়। সংক্ষেপে ls -li। আসুন ব্যবহার করে দেখি:
এখানে প্রথম কলামে ইনোড নম্বর আছে । লক্ষ্য করুন fun এবং fun-hard উভয়ের ইনোড নম্বর একই। অর্থাৎ তারা একই ফাইল।
এবার সিমবোলিক লিঙ্ক তৈরি করা যাক। হার্ডলিঙ্কের মতই বর্তমান ডিরেক্টরিতে একটা এবং dir1 ও dir2তে একটা করে:
প্রথম কমান্ডটি হার্ডলিঙ্ক তৈরি করার মতই শুধু -s অপশনটি যুক্ত করা হয়েছে সিমবোলিক লিঙ্ক তৈরি করতে। কিন্তু দ্বিতীয় ও তৃতীয় কমান্ডে fun এর জায়গায় ../fun কেন? কারন dir1 বা dir2 এর সাপেক্ষে ওটাই fun ফাইলটির অবস্থান। অর্থাৎ, dir1 বা dir2 এর সাপেক্ষে fun এর রিলেটিভ পাথ ../fun
আমরা fun ফাইলটির এ্যাবসলিউট পাথ ব্যবহার করেও সিমবোলিক লিঙ্ক তৈরি করতে পারি:
আমরা চাইলে dir1 এর সিমবোলিক লিঙ্ক তৈরি করতে পারি:
এবার কিছু ডিলিট করা বা মুছে ফেলা যাক। আমরা fun-hard নামের হার্ডলিঙ্কটি মুছে ফেলি প্রথমে:
এবার ls -l কমান্ড দিয়ে দেখি মুছে গেছে কিনা:
এখানে fun-hard ফাইলটি নেই, অর্থাৎ সেটি মুছে গেছে।
এবার -i অর্থাৎ ইন্টারএ্যাকটিভ অপশনসহ fun ফাইলটি মুছে ফেলার চেষ্টা করি:
এবার fun ফাইলটি মোছার আগে অনুমতি চাইছে। আমরা y চেপে এন্টার দিলে ফাইলটি মুছে গেলো। এবার ls -l দিয়ে দেখি:
fun ফাইলটি নেই। এবং হয়ত লক্ষ্য করেছেন আপনার টার্মিনালে fun-sym -> fun লাল অক্ষরে লেখা। যার অর্থ ওই সিমবোলিকলিঙ্কটি ভেঙে গেছে বা ব্রোকেন। মানে লিঙ্কটি আর কাজ করবে না। এবার আমরা সিমবোলিক লিঙ্কগুলো মুছে ফেলি:
এবার আমরা হোম ডিরেক্টরিতে যাই এবং playground ডিরেক্টরিটিকেই মুছে ফেলি:
লক্ষ্য করুন, playground ফোল্ডারের মধ্যে তখনও কিছু কন্টেন্ট ছিল তাই মুছে ফেলতে আমাদের -r অপশনটি ব্যবহার করতে হয়েছে।
Last updated