না, একটি হার্ড লিঙ্ক সম্পূর্ণ আলাদা। একটি সফট লিঙ্ক একটি উইন্ডোজ শর্টকাটের কাছাকাছি (যদিও গুরুত্বপূর্ণ পার্থক্য রয়েছে, প্রতীকী লিঙ্কগুলি হার্ড লিঙ্কগুলির চেয়ে উইন্ডোজ শর্টকাটের সাথে বেশি মিল)। একটি হার্ড লিঙ্ক একটি আলাদা জিনিস এবং এটি আপনার প্রায় প্রয়োজন হবে না।
সংক্ষেপে, এই আদেশ দিয়ে একটি নরম লিঙ্ক তৈরি করা হয়েছে:
ln -s foo bar
তারপরে যদি আপনি দৌড়ে যান তবে ls -l
আপনি দেখতে পাবেন:
lrwxrwxrwx 1 terdon terdon 3 Mar 10 15:58 bar -> foo
-rw-r--r-- 2 terdon terdon 0 Mar 10 15:58 foo
->
মানে যে bar
একটি লিঙ্ক foo
। সুতরাং, bar
উদাহরণস্বরূপ একটি পাঠ্য সম্পাদক সহ ওপেনিং প্রকৃতপক্ষে পৃথক ফাইলটি খুলবে foo
। তবে মুছে bar
ফেললে শর্টকাটটি মুছে যাবে, এটি ফাইলটিকে প্রভাবিত করবে না foo
।
অন্যদিকে, হার্ড লিঙ্কগুলি এই আদেশ দ্বারা তৈরি করা হয়েছে:
ln foo bar
আপনি যদি এখন চালনা করেন ls -l
তবে ফাইলগুলির মধ্যে কোনও সম্পর্কের কোনও ইঙ্গিত নেই:
-rw-r--r-- 2 terdon terdon 0 Mar 10 15:58 bar
-rw-r--r-- 2 terdon terdon 0 Mar 10 15:58 foo
তবে — এবং এটি খুব গুরুত্বপূর্ণ — এগুলি আসলে একই ফাইল । ইউনিক্স ফাইল সিস্টেমে ফাইলগুলি ইনোড ব্যবহার করে সংরক্ষণ করা হয় ; একটি ইনোডটি মূলত সেই পদ্ধতিতে যেভাবে ফাইল সিস্টেম কোনও ফাইলের নাম শারীরিক হার্ড ড্রাইভে একটি নির্দিষ্ট স্থানে ম্যাপ করে। সুতরাং, হার্ড লিঙ্কগুলি এমন ফাইলগুলি যা তাদের টার্গেটের মতো একই ইনোডকে নির্দেশ করে । এটি লাগানোর আর একটি উপায় হ'ল সমস্ত ফাইলই আসলে তাদের লিঙ্কগুলিকে নির্দেশ করে এমন হার্ড লিঙ্ক। একটি ফাইলের সাথে একটি হার্ড লিঙ্ক তৈরি করা কেবল ফাইল সিস্টেমে একটি নতুন পয়েন্টার (ফাইল) তৈরি করে যা একই ইনোডকে নির্দেশ করে। প্রতিটি ইনোডে একাধিক ফাইল এতে বা একটিকে নির্দেশ করতে পারে, বা কোনওটিই নয়।
এটি আরও স্পষ্টভাবে বুঝতে, ls -i
কোনও ফাইলের সাথে যুক্ত ইনড দেখায় এমনটি ব্যবহার করুন। আসুন একটি নরম লিঙ্ক এবং একটি হার্ড লিঙ্ক তৈরি করুন এবং দেখুন কী ঘটে:
ln -s foo SoftLinkToFoo
ln foo HardLinkToFoo
এখন, তাদের ইনোডগুলি পরীক্ষা করুন:
আপনি উপরের হিসাবে দেখতে পাচ্ছেন foo
এবং HardLinkToFoo
উভয়টিরই একই ইনোড রয়েছে (16648029) যখন সফ্টলিঙ্কটোফুর একটি আলাদা (16648036) রয়েছে।
যদি আমরা নামান্তর কি হবে foo
সঙ্গে mv foo bar
?
লাল রঙ একটি ভাঙা নরম লিঙ্কটি নির্দেশ করে, যার টার্গেটটি আর খুঁজে পাওয়া যাবে না। এটি কারণ নরম লিঙ্কগুলি কোনও ফাইলের নামের দিকে ইন্ডোড নয় point নোট করুন যে নামটি পরিবর্তন করা সত্ত্বেও, ইনোডটি একই থাকে তাই হার্ডলিঙ্কটি ঠিক আছে, এটি এখনও কাজ করে।
সংক্ষেপে, হার্ড লিঙ্কগুলি আসলে একই ফাইলের দুটি প্রকাশ ; তারা ডিস্কের একই বিভাগে নির্দেশক। সফট লিঙ্কগুলি কেবল শর্টকাট। আসল বিশ্বের উপমা নিতে, হার্ডলিঙ্কগুলি একই ফোন লাইনের জন্য দুটি পৃথক ফোন নম্বরগুলির মতো এবং সফট লিঙ্কগুলি একই বাড়িতে দুটি পৃথক ফোন লাইন থাকার মতো having