লিনাক্সে শর্টকাট নেই, কিন্তু সিমবোলিক লিংক আছে—যাকে সাধারণত Symlinks বলা হয়। কিন্তু সিমবোলিক লিংক আসলে কী? এবং এটি কীভাবে তৈরি করবেন? চলুন জানি।
আমরা উবুন্টু ইনস্টলেশনে কমান্ডগুলো পরীক্ষা করব, যদিও সিনট্যাক্স সব লিনাক্স ডিস্ট্রোতে একই। আশ্চর্যyen, সিমলিংক ম্যাক পিসিতেও তৈরি করা যায়।
সিমবোলিক লিংক কী?
আপনি যদি একটি ফাইলকে একাধিক লোকেশন থেকে অ্যাক্সেস করতে চান, তবে সেটি কপি করা ভালো সমাধান নয়। আপনি ডিস্ক স্পেস বর্জন করছেন, সেই সাথে একাধিক ফাইল থাকায় পরিবর্তন ট্র্যাক করা কঠিন হয়ে যাচ্ছে।
GUI-ভিত্তিক অপারেটিং সিস্টেমে, আপনি শর্টকাট তৈরি করে এই সমস্যাটি সমাধান করবেন। CUI-ভিত্তিক OS-এ (যেমন যেকোনো লিনাক্স ডিস্ট্রো), সমাধান হল সিমলিংক। মাইক্রোসফট উইন্ডোজও কিছু পরিস্থিতিতে সিমলিংক ব্যবহার করতে পারে।
একটি সিমলিংক বা সিমবোলিক লিংক আসলে একটি ফাইল যা অন্য একটি ফাইল বা ডিরেক্টরিকে নির্দেশ করে—হয়েও যেন সম্পূর্ণ ভিন্ন ফাইল সিস্টেম বা পার্টিশনে। সিমলিংকটি খুললে আপনাকে মূল ফাইলে অ্যাক্সেস मिलে, এবং যে কোনো পরিবর্তন মূল ফাইলে প্রতিফলিত হয়।
এটি পারমিশনের জন্যও প্রযোজ্য—chmod ব্যবহার করে সিমলিংক ফাইলের পারমিশন পরিবর্তন করলে মূল ফাইলের পারমিশন পরিবর্তিত হয়।
সিমলিংকের প্রকারভেদ
সিমবোলিক লিংককে সফট লিংকও বলা হয়। নামটিই ইঙ্গিত দেয়, এটি লিনাক্সে ফাইল-লিংকিং সিস্টেমের একমাত্র প্রকার নয়। হার্ড লিংক কিছু পরিস্থিতিতে সিমলিংকের বিকল্প হিসেবে ব্যবহার করা যায়, তবে এর কিছু περιοবদ্ধতা রয়েছে।
প্রথমে, হার্ড লিংকগুলি শুধু একই ইনোডকে নির্দেশকারী ফাইলের নাম। এতে সেগুলো স্টোরেজ এবং অ্যাক্সেস গতির দৃষ্টিকোণ থেকে খুব দক্ষ, কিন্তু এটি একই ফাইল সিস্টেম বা পার্টিশনের ফাইলগুলোর সাথে সীমাবদ্ধ। এবং ফোল্ডার অ্যাক্সেস কীভাবে কাজ করে তার একটি বৈশিষ্ট্যের কারণে, ডিরেক্টরির জন্য হার্ড লিংক ব্যবহার করা যায় না।
দूसरी ओर, সফট লিংক বা সিমবোলিক লিংক ডেস্কটপ শর্টকাটের মতো। প্রতিটি সফট লিংক মূলত একটি ছোট ফাইল যা মূল ডেটাকে নির্দেশ করে, সরাসরি এর সাথে লিঙ্ক করা ছাড়া। এর মানে সফট লিংক সহজে অন্য পার্টিশন এবং ফাইল সিস্টেমের ফাইল এবং ডিরেক্টরিকে নির্দেশ করতে পারে কোনো সীমাবদ্ধতা ছাড়া।
হার্ড লিংক বনাম সফট লিংক—কোনটি ব্যবহার করবেন?
সফট লিংক সবচেয়ে বহুমুখী লিংক ফর্ম যেহেতু এতে একাধিক ফাইল সিস্টেমে ফাইল এবং ডিরেক্টরির উভয়েই ব্যবহার করা যায় কোনো সীমাবদ্ধতা ছাড়া। কিন্তু তাহলে হার্ড লিংক কেন আছে? কি সিমলিংকের চেয়ে কোনো সুবিধা দেয়?
সিদ্ধান্তে, হার্ড লিংক বেশি দক্ষ। একই ইনোড ব্যবহার করায় এগুলো অতিরিক্ত ডিস্ক স্পেস নেয় না এবং সফট লিংকের চেয়ে অনেক দ্রুত অ্যাক্সেসযোগ্য। এইीलिए অনেক সিস্টেম অ্যাডমিনিস্ট্রেটর যেকোনো সময়ই হার্ড লিংক ব্যবহার করার পরামর্শ দেন।
একে বরাবর, সিমবোলিক লিংক ব্যবহার করার ডメリカগুলো নগণ্য। আধুনিক কম্পিউটারগুলো কিছু কিলোবাইট অতিরিক্ত স্টোরেজের জন্য চিন্তা করে না, এবং আপনি যদি মিলিয়ন মিলিয়ন সফট লিংক দিয়ে সিস্টেমটি না ভর্তি করেন, তবে অতিরিক্ত ফাইল সাইজ সম্ভবত কখনোই বিষয় হবে।
সিমবোলিক লিংক তৈরি করা
সিমবোলিক লিংক—বরং সাধারণ ফাইল লিংক—ln কমান্ড দিয়ে তৈরি করা হয়। ডিফল্টভাবে, কমান্ডটি হার্ড লিংক তৈরি করে। সিমবোলিক লিংক তৈরি করতে, ln কমান্ডের সাথে -s ফ্ল্যাগ যোগ করতে হবে।
সিনট্যাক্স খুব সহজ। ln কমান্ড দুটি প্যারামিটার নেয়—লিংক করার ফাইল (বা ফোল্ডার) পাথ, এবং তৈরি করার লিংক ফাইলের পাথ।
যেমন:
ln -s user_names.txt names
এটি names নামক একটি সিমলিংক তৈরি করবে যা user_names টেক্সট ফাইলটির সাথে সংযুক্ত। সিমবোলিক লিংকটি তৈরি হয়েছে কিনা তা দেখতে শুধু ls কমান্ড ব্যবহার করুন।
আপনি দেখতে পাচ্ছেন, উবুন্টু ফাইলের বিভিন্ন ক্যাটাগরির জন্য আলাদা রঙ দেখায়, ডিরেক্টরির জন্য গাঢ় নীল এবং সিমলিংকের জন্য হালকা নীল রঙ (সাইন, আসলে)।
ফোল্ডারের জন্য সিমলিংক তৈরি করতে একই সিনট্যাক্স ব্যবহার করা যায়:
ln -s examples example_folder
অন্য ডিরেক্টরির ফাইল ও ফোল্ডারের জন্য সিমলিংক তৈরি করতে, তাদের পুরো পাথ ব্যবহার করুন। উদাহরণস্বরূপ:
ln -s examples/example3.txt distant_example
সিমলিংকের সীমাবদ্ধতা
সিমবোলিক লিংক কপি না করে আপনার সিস্টেম জুড়ে ফাইল সংযোগ করার একটি চমৎকার উপায়, কিন্তু এর কিছু সীমাবদ্ধতা রয়েছে। হ্যাঁ, যদিও সফট লিংক হার্ড লিংকের চেয়ে কম সীমাবদ্ধ, তবুও কিছু বিষয় মনে রাখতে হবে।
প্রথম, ln কমান্ড তৈরি করা লিংকগুলো যাচাই করে না। এর মানে আপনি এমন একটি ফাইলনেম লিখতে পারেন যা আসলে আছে না, এবং আপনাকে কোনো এরর দেখাবে না। লিংকটি সঠিক ফাইলে যাচ্ছে কিনা তা নিশ্চিত করার একমাত্র উপায় হল সেটি ব্যবহার করার চেষ্টা করা।
দ্বিতীয়, সিমলিংক অ্যাক্সেস বা পারমিশন পরিবর্তন করলে মূল ফাইলের বৈশিষ্ট্য পরিবর্তিত হয়, কিন্তু ফাইল মুছে ফেলার ক্ষেত্রে একই নিয়ম প্রযোজ্য নয়। আপনি নিরাপদে সিমবোলিক লিংক মুছে ফেলতে পারেন, লিংক করা ফাইল বা ডিরেক্টরিতে কোনো প্রভাব পড়বে না।
লিনাক্সে সিমলিংক তৈরি করা
টার্মিনাল ব্যবহার করে সিমবোলিক লিংক তৈরি করার সবচেয়ে বড় সমস্যা হল বিভিন্ন ডিরেক্টরিতে फैले গুরুত্বপূর্ণ ফাইলগুলো অ্যাক্সেস করার কঠিনতা। বুদ্ধিমানের সমাধান হল হোম ডিরেক্টরি থেকে এমন ফাইলগুলোর সিমবোলিক লিংক তৈরি করা, ডেস্কটপ শর্টকাটের মতো।
হার্ড লিংকের বিপরীতে, সিমলিংক সহজেই তৈরি করা যায় কোনো সীমাবদ্ধতা ছাড়া, এমনকি ভিন্ন পার্টিশন এবং ফাইল সিস্টেমের ডিরেক্টরি বা ফাইলের সাথে সংযোগ করার জন্য। মনে রাখবেন যে এর মানে একটি সিমলিংক অস্তিত্বহীন ফাইলকে নির্দেশ করতে পারে—আপনাকে লিংকটি অ্যাক্সেস করে ফাইলটি আছে কিনা তা যাচাই করতে হবে।