লিংক এবং ইনোড: হার্ড লিংক এবং সিম্বলিক লিংক
ফাইল সিস্টেমে লিংক একটি পদ্ধতি যা ফাইলের একাধিক রেফারেন্স তৈরি করতে ব্যবহৃত হয়। লিংক দুটি ধরনের হতে পারে: হার্ড লিংক এবং **সিম্বলিক লিংক (সফট লিংক)**। এগুলি ফাইল এবং ডিরেক্টরি পরিচালনার জন্য অত্যন্ত গুরুত্বপূর্ণ।
ইনোড (Inode) কী?
ইনোড একটি ডাটা স্ট্রাকচার যা ফাইল সিস্টেমে একটি নির্দিষ্ট ফাইলের মেটাডেটা সংরক্ষণ করে, যেমন:
- ফাইলের মালিকানা
- ফাইলের আকার
- ফাইলের প্রকার (ফাইল, ডিরেক্টরি, বা লিঙ্ক)
- ফাইলের পরিবর্তনের তারিখ
- ফাইলের অবস্থান (ফাইল ডেটা কোথায় সংরক্ষিত রয়েছে)
যখন কোনো ফাইল তৈরি করা হয়, তখন একটি ইনোড বরাদ্দ করা হয় এবং এটি ফাইলের সব মেটাডেটা সংরক্ষণ করে। একটি ইনোডের মাধ্যমে ফাইল সিস্টেমে ফাইলের অবস্থান চিহ্নিত করা হয়।
হার্ড লিংক (Hard Link)
হার্ড লিংক হল একটি নতুন রেফারেন্স বা পয়েন্টার যা একটি বিদ্যমান ফাইলের ইনোডের দিকে নির্দেশ করে। এটি মূল ফাইলের সাথে একটি সমান সমতল কপি তৈরি করে, তবে এটি মূল ফাইলের ইনোডের সাথে সম্পর্কিত থাকে।
বিশেষত্ব:
- হার্ড লিংক মূলত একটি ফাইলের নতুন নাম সৃষ্টি করে।
- ফাইলের তথ্য একাধিক স্থানে থাকে, কিন্তু এগুলির মধ্যে কোনো পার্থক্য থাকে না। এর মানে, উভয় লিংক একই ফাইলের জন্য ইনোড শেয়ার করে।
- যখন কোনো একটি হার্ড লিংক বা মূল ফাইল মুছে ফেলা হয়, ফাইলটি তখনো সিস্টেমে থাকবে যদি অন্য কোনো হার্ড লিংক থেকে সেই ইনোড রেফারেন্স করা হয়।
- একই পার্টিশনে থাকা ফাইলের জন্যই হার্ড লিংক তৈরি করা যায়।
বৈশিষ্ট্য:
- ফাইলের মধ্যে কোনো পার্থক্য নেই: হার্ড লিংক এবং মূল ফাইল উভয়ই একে অপরের সাথে সম্পর্কিত থাকে এবং একই ইনোডে পয়েন্ট করে।
- ডিরেক্টরি লিংক করা যাবে না: সাধারণত ডিরেক্টরি ফাইলের জন্য হার্ড লিংক তৈরি করা যাবে না, শুধুমাত্র ফাইলের জন্যই এটি সম্ভব।
- হার্ড লিংক তৈরি করার জন্য
lnকমান্ড ব্যবহৃত হয়।
উদাহরণ:
ln file.txt hardlink.txtএই কমান্ডটি file.txt এর একটি হার্ড লিংক তৈরি করবে hardlink.txt নামে।
সিম্বলিক লিংক (Symbolic Link / Soft Link)
সিম্বলিক লিংক (বা সফট লিংক) একটি বিশেষ ধরনের ফাইল যা অন্য একটি ফাইল বা ডিরেক্টরির পথকে নির্দেশ করে। এটি একটি পাথ বা লিংক ফাইল তৈরি করে যা আসল ফাইলের বা ডিরেক্টরির সাথে সংযুক্ত থাকে। এটি আসল ফাইল বা ডিরেক্টরি এর দিকে একটি "পয়েন্টার" হিসেবে কাজ করে।
বিশেষত্ব:
- সিম্বলিক লিংক আসলে একটি আলাদা ফাইল যা মূল ফাইলের পাথ ধারণ করে।
- ফাইলের মধ্যে পার্থক্য থাকে: এটি মূল ফাইলের একটি আলাদা ফাইল নাম হিসেবে কাজ করে এবং পাথের রেফারেন্স রাখে।
- সিম্বলিক লিংক ফাইল বা ডিরেক্টরি অন্য একটি জায়গায় থাকতে পারে, যেমন অন্য পার্টিশনে।
- যদি মূল ফাইলটি মুছে ফেলা হয়, তবে সিম্বলিক লিংকটি "broken" হয়ে যায় এবং কোনো কার্যকারিতা রাখে না।
- সিম্বলিক লিংক তৈরি করতে
ln -sকমান্ড ব্যবহৃত হয়।
বৈশিষ্ট্য:
- পাথের রেফারেন্স: সিম্বলিক লিংক মূল ফাইলের অবস্থান নির্দেশ করে, এবং এটি মূল ফাইলের পরিবর্তন অনুসরণ করে।
- ফাইল ও ডিরেক্টরি লিংক করা যাবে: সিম্বলিক লিংক ফাইল এবং ডিরেক্টরি উভয়ের জন্য তৈরি করা যায়।
- অন্য পার্টিশনে কাজ করতে পারে: সিম্বলিক লিংক এক পার্টিশন থেকে অন্য পার্টিশনে ফাইলের লিংক করতে পারে।
- সিম্বলিক লিংক তৈরি করতে
ln -sকমান্ড ব্যবহৃত হয়।
উদাহরণ:
ln -s /home/user/file.txt symlink.txtএই কমান্ডটি /home/user/file.txt ফাইলটির জন্য একটি সিম্বলিক লিংক তৈরি করবে symlink.txt নামে।
হার্ড লিংক এবং সিম্বলিক লিংকের মধ্যে পার্থক্য
| বৈশিষ্ট্য | হার্ড লিংক | সিম্বলিক লিংক |
|---|---|---|
| ফাইলের নাম | একটি নতুন নাম তৈরি করে, কিন্তু একই ইনোডে থাকে। | একটি নতুন ফাইল তৈরি করে যা মূল ফাইলের পাথকে নির্দেশ করে। |
| ইনোড শেয়ারিং | একই ইনোড শেয়ার করে। | আলাদা ইনোড থাকে, এবং মূল ফাইলের পাথ সংরক্ষণ করে। |
| ডিরেক্টরি লিংক | সাধারণত ডিরেক্টরি লিংক করা যায় না। | ডিরেক্টরি লিংক করা সম্ভব। |
| ফাইল মুছে ফেলা হলে | অন্য হার্ড লিংক থাকলে ফাইলের ডেটা অক্ষত থাকে। | মূল ফাইল মুছে ফেলা হলে সিম্বলিক লিংক "broken" হয়ে যায়। |
| পার্টিশন সীমাবদ্ধতা | শুধুমাত্র একই পার্টিশনে কাজ করে। | এক পার্টিশন থেকে অন্য পার্টিশনে কাজ করতে পারে। |
| অ্যাপ্লিকেশন | ফাইলের প্রতিটি লিংক সমান অধিকার পায়। | সিম্বলিক লিংকটি একটি রেফারেন্স হিসাবে কাজ করে। |
সারসংক্ষেপ
হার্ড লিংক এবং সিম্বলিক লিংক ফাইল সিস্টেমে ফাইলগুলির রেফারেন্স তৈরি করতে ব্যবহৃত হয়। হার্ড লিংক একটি মূল ফাইলের সাথে একই ইনোড শেয়ার করে, তবে সিম্বলিক লিংক মূল ফাইলের পাথের একটি রেফারেন্স তৈরি করে। যেখানে হার্ড লিংক একটি কপি ফাইলের মতো কাজ করে, সিম্বলিক লিংক একটি পাথ নির্দেশক হিসাবে কাজ করে এবং এটি অন্যান্য পার্টিশন বা ডিরেক্টরির জন্যও ব্যবহার করা যেতে পারে।
Read more