আপনার কাজ করা লিনাক্স সিস্টেমে, ধরা যাক আপনার একাধিক স্তরের ডিরেক্টরির মধ্যে একটি ফাইল নেস্ট করা আছে। সহজেই সেই ফাইলটি অ্যাক্সেস করার জন্য, আপনি আপনার ডেস্কটপে সেই ফাইলটির জন্য একটি শর্টকাট তৈরি করতে চান। সিমলিংক ব্যবহার করা সম্ভব (এটি নরম লিঙ্ক হিসাবেও পরিচিত)। হার্ড লিঙ্ক নামে পরিচিত লিঙ্কের আরেকটি রূপও রয়েছে। এই নিবন্ধে আমরা নরম এবং হার্ড লিঙ্কগুলির মধ্যে পার্থক্যগুলি ব্যাখ্যা করব এবং আপনার কোনটি ব্যবহার করা উচিত তা একবার দেখুন৷
নরম বনাম হার্ড লিঙ্ক
একটি নরম লিঙ্ক, বা সিমলিঙ্ক, শুধুমাত্র একটি প্রতীকী লিঙ্ক। এটি শুধুমাত্র লক্ষ্য ফাইলপথের একটি পয়েন্টার। ফাইলপাথের ফাইল বা ফোল্ডারটি সত্যিই বিদ্যমান কিনা তা একটি সফ্ট লিঙ্ক বিবেচনা করে না। যদি ফাইল বা ফোল্ডারটি বিদ্যমান না থাকে তবে এটি কেবল একটি ভাঙা সিমলিংকের পরিণতি হবে। আপনি সিমলিংক সম্পাদনা বা মুছে ফেলতে পারেন, এবং এটি লক্ষ্য ফাইলকে প্রভাবিত করবে না।
অন্যদিকে, একটি হার্ড লিঙ্ক টার্গেট ফাইলটিকে একটি অতিরিক্ত নাম দেওয়ার প্রভাব রাখে। আপনি যখন একটি ফাইলের বিষয়বস্তু সম্পাদনা করেন, তখন এটি অন্য ফাইলের বিষয়বস্তুকেও সংশোধন করবে। সংক্ষেপে, একটি সফট লিঙ্ক টার্গেট ফাইলপাথের একটি রেফারেন্স মাত্র, যখন একটি হার্ড লিঙ্ক টার্গেট ফাইলের ডেটার সরাসরি লিঙ্ক।
নীচে আমরা ব্যাখ্যা করব কীভাবে নরম এবং হার্ড লিঙ্কগুলি কাজ করে৷
৷অ্যাকশনে নরম লিঙ্কগুলি
ধরা যাক আমাদের কাছে “first_file.txt” নামে একটি ফাইল আছে যার মধ্যে চারটি লাইনের পাঠ্য রয়েছে।
আমরা আমাদের হোম ডিরেক্টরিতে একটি সফট লিঙ্ক তৈরি করব।
ln -s first_file.txt ~/sl-firstfile.txt
জিনোম ডেস্কটপ এনভায়রনমেন্টে, ফাইলটিতে ডান-ক্লিক করে এবং "লিঙ্ক তৈরি করুন" নির্বাচন করে একটি ফাইলের জন্য একটি সফট লিঙ্ক তৈরি করা যেতে পারে। একটি সফ্ট লিঙ্ক তৈরি করা হয় যেখানে নামটি "
আমরা যদি “sl-firstfile.txt”-এর বিষয়বস্তু দেখার চেষ্টা করি, তাহলে আমরা দেখতে পাব যে এটি “first_file.txt”-এর মতই।
আমরা যদি ফাইল ম্যানেজারে এই দুটি ফাইলের দিকে তাকাই, সফ্ট লিঙ্কটি আসল ফাইলের শর্টকাট হিসাবে উপস্থিত হয়। ফাইলের আইকনে কালো তীরটি এটিকে নির্দেশ করে৷
৷
যখন আমরা ls -l
কমান্ড ব্যবহার করে বর্তমান ডিরেক্টরির তালিকা দেখার চেষ্টা করি , আপনি দেখতে পারেন যেখানে সফট লিঙ্ক টার্গেট ফাইলের দিকে নির্দেশ করছে। "sl-firstfile.txt"-এর অনুমতি স্ট্রিং-এর প্রথম অক্ষরটি হল "l", যার মানে এই এন্ট্রিটি একটি লিঙ্কের জন্য৷
সফট লিঙ্ক মুছে ফেলার আচরণ
যখন টার্গেট ফাইলটি মুছে ফেলা হয়, তখনও নরম লিঙ্কটি প্রায় থাকবে।
যাইহোক, এটি একটি "ঝুলন্ত" বা "ভাঙা" লিঙ্ক হয়ে গেছে এবং অকেজো৷
৷এখন, আপনি যদি একই নামের আরেকটি ফাইল তৈরি করেন - “first_file.txt” - সফট লিঙ্কটি আবার সক্রিয় হয়ে যাবে।
দ্রষ্টব্য :যদি আপনি নরম লিঙ্কগুলির সম্মুখীন হন এবং যে ফাইলটির জন্য লিঙ্কটি তৈরি করা হয়েছে তার সম্পূর্ণ পথ খুঁজে পেতে চান, কেবল readlink
ব্যবহার করুন নীচে দেখানো হিসাবে কমান্ড.
এই কমান্ডের আউটপুট হবে মূল ফাইলের পরম পথ।
অ্যাকশনে হার্ড লিঙ্ক
এখন আমরা আমাদের হোম ডিরেক্টরিতে একই ফাইলের জন্য একটি হার্ড লিঙ্ক তৈরি করব। এটি নিম্নলিখিত কমান্ড দিয়ে করা যেতে পারে:
ln first_file.txt hl-first-file.txt
দ্রষ্টব্য :নরম এবং হার্ড লিঙ্ক তৈরির পদ্ধতি উভয়ই ln
ব্যবহার করে আদেশ একমাত্র পার্থক্য হল -s
পতাকা যা একটি প্রতীকী লিঙ্ক নির্দেশ করে৷
একটি হার্ড লিঙ্ক তৈরি করার আরেকটি উপায় হল link
ব্যবহার করে আদেশ।
link hl-firstfile.txt hl2-firstfile.txt
উভয় ফাইলের উপর একটি চেক দেখায় যে তাদের বিষয়বস্তু একই।
GUI-তে, উভয় ফাইলই স্বতন্ত্র সত্তা হিসাবে উপস্থিত হয়। হার্ড লিঙ্কের অস্তিত্ব সম্পর্কে কোন ইঙ্গিত নেই।
আসুন হার্ড লিঙ্ক ফাইল "hl-firstfile.txt" এ একটি নতুন লাইন যোগ করার চেষ্টা করি৷
echo "hello" >> hl-first-file.txt
ডেটার পরিবর্তন উভয় ফাইলেই দেখা যায়।
যখন একটি হার্ড লিঙ্ক তৈরি করা হয়, তখন মনে হয় দুটি ভিন্ন ফাইল বিদ্যমান, কিন্তু তাদের ডেটা লিঙ্ক করা হয়। একটির পরিবর্তন অন্যটিতে প্রতিফলিত হয়৷
৷দ্রুত পরামর্শ :সফ্ট লিঙ্ক এবং হার্ড লিঙ্ক তৈরি করার সময়, লিঙ্কটি যে ফাইলের জন্য তৈরি করা হচ্ছে সেই ফাইলটির মতো একই এক্সটেনশন ব্যবহার করা ভাল ধারণা।
হার্ড লিঙ্ক মুছে ফেলার আচরণ
হার্ড লিঙ্কের জন্য, আসল ফাইল বা হার্ড লিঙ্ক মুছে ফেলা উদ্বেগের বিষয় নয়। ফাইলটিতে প্রাথমিকভাবে সংরক্ষিত ডেটা এখনও হার্ড লিঙ্কের মাধ্যমে অ্যাক্সেসযোগ্য।
কোমল লিঙ্কগুলি কখন কার্যকর হবে?
আমরা লক্ষ্য করেছি যে সফ্ট লিঙ্কগুলি একটি ফাইলের শর্টকাট হিসাবে উপস্থিত হয়। যখন আমাদের ডিরেক্টরির একাধিক স্তরের মধ্যে একটি ফাইল থাকে এবং সহজে অ্যাক্সেসের জন্য এটি একটি অবস্থানে সংরক্ষণ করতে চাই, তখন একটি ভাল বিকল্প হবে এটির জন্য একটি ছোট লিঙ্ক তৈরি করা৷
হার্ড লিঙ্কগুলি কখন কার্যকর হবে?
আমরা দেখেছি যে একবার একটি ফাইলের জন্য একটি হার্ড লিঙ্ক তৈরি করা হলে, ফাইলের কোনো পরিবর্তন বা হার্ড লিঙ্ক উভয়ই প্রতিফলিত হয়৷
ধরা যাক আপনার একটি ব্যাকআপ সার্ভার আছে। একটি ক্রমবর্ধমান ব্যাকআপ প্রক্রিয়া ব্যবহার করা হচ্ছে যেখানে শেষ ব্যাকআপের পর থেকে শুধুমাত্র ফাইল/ফোল্ডারের পরিবর্তনগুলি প্রতিফলিত হয়। আপনি সার্ভারের একটি ফাইল এবং কম্পিউটারে সংশ্লিষ্ট অনুলিপির মধ্যে একটি হার্ড লিঙ্ক তৈরি করতে পারেন। যখন ব্যাকআপ হয়, তখন কম্পিউটারে ফাইলের পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে সার্ভারের সংশ্লিষ্ট হার্ড-লিঙ্ক করা ফাইলে প্রতিফলিত হবে, এমনকি ফাইলগুলির নাম পরিবর্তন হলেও৷
উপসংহার
নরম এবং হার্ড লিঙ্ক উভয়েরই নিজস্ব ব্যবহার রয়েছে এবং বিভিন্ন পরিস্থিতিতে ব্যবহার করা উচিত। তাদের পার্থক্য বোঝা আপনাকে লিঙ্ক তৈরি করার সময় আরও ভাল সিদ্ধান্ত নিতে দেয়। ডিরেক্টরির জন্যও সফট লিঙ্ক এবং হার্ড লিঙ্ক তৈরি করা যেতে পারে। সফ্ট লিঙ্কগুলি ফাইল সিস্টেম জুড়ে তৈরি করা যেতে পারে, হার্ড লিঙ্কগুলি শুধুমাত্র একই ফাইল সিস্টেমের মধ্যে তৈরি করা যেতে পারে।