Symlink— যাকে Symbolic link বা Soft link-ও বলা হয়— কম্পিউটার ব্যবহারকারীদের জন্য সবচেয়ে লুকানো কনসেপ্টের একটি হতে পারে। যাইহোক, সেটি এর গুরুত্ব এবং সুবিধাগুলো কমায় না। ভিন্ন ফোল্ডার থেকে ফোল্ডার ও ফাইল অ্যাক্সেস করা যাক ডুপ্লিকেট কপি মেইনটেইন না করেই? হ্যাঁ, এটিই Symlink-এর শক্তি।
Symlink বা Symbolic Link কী
Symlink হলো শর্টকাট ফাইল যা একটি ফিজিক্যাল ফাইল বা ফোল্ডারকে রেফার করে যেটি অন্য 어딘가에 অবস্থিত। Symlink ভার্চুয়াল ফাইল বা ফোল্ডার হিসেবে কাজ করে, যেটি যেকোনো ফাইল বা ফোল্ডারের সাথে লিংক করা যায়, যাতে সেগুলো যেন Symlink-এর ফোল্ডারে সংরক্ষিত হলো এমন দাঁড়ায়, যদিও Symlink শুধু তাদের আসল লোকেশনের দিকে নির্দেশ করে।
Symlink কে শুধু শর্টকাট মনে করবেন না
বুঝতে হবে যে Symlink শুধু শর্টকাট নয়, যেটি একটি উইন্ডোজ ব্যবহারকারী হিসেবে আপনি ইতিমধ্যে জানেন। একটি শর্টকাট ফাইল শুধু কাঙ্খিত ফাইলটির দিকে নির্দেশ করে যখন Symlink দেখাবে যেন লিংক করা ফাইলটি সত্যিই সেখানে আছে। একবার আপনি Symlink-এ ক্লিক করলে, আপনি আসল ফাইল লোকেশনে নিয়ে যাবেন।
Symlink-এর কাঠামো
একটি Symlink তৈরি হয় একটি টেক্সট স্ট্রিংয়ের মাধ্যমে যা অপারেটিং সিস্টেম দ্বারা স্বয়ংক্রিয়ভাবে ইন্টারপ্রেট ও ফলো করা হয় অন্য একটি ফাইল বা ডিরেক্টরির পথ হিসেবে। এই অন্য ফাইল বা ডিরেক্টরিকে “target” বলা হয়।
Symlink তার টার্গেট থেকে স্বতন্ত্রভাবে আছে। যদি একটি Symlink ডিলিট করা হয়, তবে এর টার্গেটে কোনো প্রভাব পড়ে না। যদি একটি Symlink একটি টার্গেটকে পয়েন্ট করে, এবং কিছু সময় পর সেই টার্গেট সরানো, রিনেম করা বা ডিলিট করা হয়, তবে সিমবলিক লিংকটি স্বয়ংক্রিয়ভাবে আপডেট বা ডিলিট হয় না, বরং এটি অস্তিত্ব বানায় রেখে পুরনো টার্গেটকে পয়েন্ট করে থাকে। যাইহোক, solchen moved বা non-existing টার্গেটের দিকে নির্দেশকারী Symlink কখনো কখনো broken, orphaned, dead, বা dangling বলা হয়।
Symlink-এর সুবিধা
- Symlink খুব কম জায়গা নেয় এবং খুব দ্রুত তৈরি হয়। Symlink দিয়ে আপনি অনেক হার্ড ডিস্ক স্পেস বাঁচাতে পারেন
- Hard links-এর বিপরীতে, symlink ফাইল সিস্টেমের পার ফাইলগুলোর সাথে লিংক করতে পারে। মনে রাখবেন, আপনি যদি আসল ফাইলটি ডিলিট করেন, hard link সেটিকে জিয়ে রাখে, কিন্তু symlink রাখে না
- Symlink সেই ফোল্ডার স্ট্রাকচার মেইনটেইন করে যাতে Symlink থাকে। উদাহরণস্বরূপ, ধরুন একটি txt ফাইল “Utility” ফোল্ডারে আছে যা অবস্থিত /D/Myfolder/Utility/windowsclub.txt। এখন যদি Utility ফোল্ডারের জন্য Dropbox ফোল্ডারে একটি Symlink তৈরি করা হয়, এবং আপনি Dropbox ফোল্ডারের ভিতরে windowsclub.txt খুঁজেন, তবে ফাইল পথ পড়বে /D/Myfolder/Utility/windowsclub.txt বরং আসল/অ্যাকচুয়াল ফাইল পথে ট্রান্সফর্ম হবে না।
- Symlink ব্যবহার করে আপনি আপনার মিডিয়া ফাইল (Music/Videos) অন্য একটি হার্ড ড্রাইভে সংরক্ষণ করতে পারেন, কিন্তু সেগুলো আপনার স্ট্যান্ডার্ড Music/Videos ফোল্ডারগুলোতে দেখাবে, যাতে মিডিয়া প্রোগ্রামগুলো সেগুলো ডিটেক্ট করতে পারে
- ডেভেলপাররা প্রায় শেয়ার করা ফাইল/ফোল্ডারের ডুপ্লিকেট কপি Symlink দিয়ে রিপ্লেস করে যেগুলো ফিজিক্যাল ফাইল/ফোল্ডারকে রেফার করে। ফাইলের রিডান্ড্যান্ট কপি রিপ্লেস করলে অনেক ফিজিক্যাল ডিস্ক স্পেস বাঁচায়, এবং প্রজেক্ট কপি/ব্যাকআপ/ডিপ্লয়/ক্লোন করার সময় উল্লেখযোগ্যভাবে কমায়।
আজকের ডেভেলপমেন্ট বিশ্বে Symlink-এর তাৎপর্য
যেমন Yosef Durr, Lead Senior Program Manager, Microsoft Windows Blog-এ উল্লেখ করেছেন,
অনেক জনপ্রিয় ডেভেলপমেন্ট টুল যেমন git এবং প্যাকেজ ম্যানেজার যেমন npm রিপো বা প্যাকেজ তৈরি করার সময় symlink রিকগ্নাইজ ও পারসিস্ট করে। যখন সেসব রিপো বা প্যাকেজ অন্য কোথাও রিস্টোর করা হয়, তবে symlink-ও রিস্টোর হয়, যাতে ডিস্ক স্পেস (এবং ব্যবহারকারীর সময়) ব্যার্থ নয়। Git, উদাহরণস্বরূপ, GitHub-এর মতো সাইটসের সাথে, আজকাল অধিকাংশ ডেভেলপার দ্বারা ব্যবহৃত মূল সোর্স কোড ম্যানেজমেন্ট টুল बन चुका है।

আধুনিক ডেভেলপমেন্টে প্যাকেজ ম্যানেজার ব্যবহারও বিস্ফোরিত হয়েছে সাম্প্রতিক বছরে। উদাহরণস্বরূপ, node package manager (npm) জুলাই ১, ২০১৫ সপ্তাহে ~৪০০ মিলিয়ন ইনস্টল সার্ভ করেছিল, কিন্তু মাত্র এক বছর পর ১.২ বিলিয়ন ইনস্টল সার্ভ করল— মাত্র এক বছরে ৩গুণ বৃদ্ধি! জুন ২০১৬-এর শেষে, npm সাত দিনে ১.৭ বিলিয়নও অধিক node প্যাকেজ সার্ভ করল!
Windows 11/10-এ Symlinks
যদিও Symlink-এর স্বতন্ত্র সুবিধা রয়েছে, এটি প্রাথমিকভাবে UNIX-কম্প্যাটিবল অপারেটিং সিস্টেম যেমন Linux, FreeBSD, OSX ইত্যাদিতে ব্যবহার হতো, যেখানে symlink বাধা ছাড়া তৈরি করা যায়। উইন্ডোজ ব্যবহারকারীদের জন্য, যদিও Symlink Windows Vista থেকে উপলব্ধ, তবে এটি তৈরি করা কঠিন ও জটিল ছিল।
Windows Vista-এর সিকিউরিটি রিকোয়ারমেন্টের কারণে, ব্যবহারকারীদের লোকাল অ্যাডমিন রাইট প্রয়োজন হতো এবং, গুরুত্বপূর্ণভাবে, mklink কমান্ড-লাইন কনসোলে অ্যাডমিনিস্ট্রেটর হিসেবে রান করতে হতো Symlink তৈরি বা মডিফাই করার জন্য। এই পর সীমাবদ্ধতার ফলে Symlink বেশিরভাগ উইন্ডোজ ডেভেলপার দ্বারা কম ব্যবহৃত হতো এবং অনেক মডার্ন ক্রস-প্ল্যাটফর্ম ডেভেলপমেন্ট টুল উইন্ডোজে কম কার্যকর ও বিশ্বস্ত হতো।
যাইহোক, এখন Windows 10 বা Windows 11-এ, একবার অ্যাডমিন রাইটস دار একজন ব্যবহারকারী Developer Mode সক্ষম করলে, সেই PC-র যেকোনো ব্যবহারকারী mklink কমান্ড রান করতে পারবে কমান্ড-লাইন কনসোল এলিভেট না করেই।
Symlinks কীভাবে তৈরি করবেন
Symlinks তৈরি করা যায় либо mklink command বা CreateSymbolicLink API ব্যবহার করে।
আপনি উইন্ডোজে Symlinks বা Symbolic Links তৈরি করতে পারেন, কমান্ড-লাইন ইউটিলিটি ব্যবহার করে: mklink। সিনট্যাক্স নিচের মতো:
MKLINK [[ /D] | [ /H] | [ /J]] Link Target
যেখানে –
- /D: একটি সিমবলিক ডিরেক্টরি লিংক বা সফ্ট লিংক তৈরি করে
- /H: একটি ফাইলের হার্ড লিংক তৈরি করে সিমবলিক লিংকের বদলে
- /J: একটি Directory Junction লিংক তৈরি করে
Target: সে পথ নির্দিষ্ট করে যেটি নতুন লিংকটি রেফার করে।
উদাহরণস্বরূপ, আপনি যদি d:\Data কে D:\Maindata ফোল্ডার থেকে উপলব্ধ করতে চান, তবে ব্যবহার করুন:
C:\mklink /D D:\Maindata D:\Data
এখন, আপনি D:\Maindata-এ তাকালে, আপনি সেটি দেখবেন যা অন্য ডিরেক্টরিতে ছিল। এটি সবসময় Linux-এ ছিল, কিন্তু এই ফিচারটি এখন Vista-এও উপলব্ধ করা হয়েছে।
mklink command ব্যবহার
mklink command ব্যবহার করার সময়, নিচের সিনট্যাক্স ব্যবহার করুন:
"mklink /prefix link_path file/folder_path"
নোট: mklink چندین ধরনের লিংক তৈরি করতে পারে। ধরনগুলো নিচে-
- /D একটি ডিরেক্টরি সিমবলিক লিংক তৈরি করে। ডিফল্ট হলো ফাইল সিমবলিক লিংক।
- /H একটি হার্ড লিংক তৈরি করে সিমবলিক লিংকের বদলে।
- /J একটি Directory Junction তৈরি করে।
উদাহরণস্বরূপ, আমি আমার Music ফোল্ডারের একটি ডিরেক্টরি জংশন তৈরি করলাম ডেস্কটপে। নিচের স্ক্রিনশট দেখুন-

তাহলে যখন আমি Symlink-এ ক্লিক করি, তবে লাগে আমার মিউজিক ফাইলগুলো সংরক্ষিত C:\Users\<username>\Desktop\Music যদিও আসলে সেগুলো থাকে C:\Users\<username>\Music-এ।

মনে রাখবেন, আপনার পথে যদি কোনো স্পেস থাকে, তবে সেটিকে কোটেশন মার্কের ভিতরে রাখতে হবে।
CreateSymbolicLink ব্যবহার
CreateSymbolicLink API ব্যবহার করে নতুন বিহেভিয়ার সক্ষম করতে, একটি অতিরিক্ত dwFlags অপশন আছে যেটির মান সেট করতে হবে:
SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
0x2
উপরোক্ত মান বেছে নিলে, আপনি ফ্ল্যাগটি স্পেসিফাই করেছেন যে প্রসেস এলিভেটেড না থাকলেও সিমবলিক লিংক তৈরি করার অনুমতি দিন।
CreateSymbolicLink API ব্যবহার করে Symlink তৈরির আরও জানতে, windows.com ভিজিট করুন।
পড়ুন: Hardlinks, Symbolic Links, Junctions, Volume Mountpoints তৈরি করুন।
উপসংহার
বোলে যায় যে Symlink সাধারণ শর্টকাটের চেয়ে বেশি উপকারী হলেও সেগুলো একটু কঠিন তৈরি করা। একটি সাধারণ PC ব্যবহারকারী এখনও এটাকে একটু ভয়ংকর পেতে পারে। কী বলব, আজও অনেক ব্যবহারকারী শর্টকাটের কনসেপ্ট ভালোভাবে বুঝতে পারেন না এবং তাই Symlink-এর পার্থক্য বুঝতে এবং এর ব্যবহার বুঝতে কষ্ট পান।
そう言うと, এটাকरीব গ্যারান্টি করা যায় যে আপনি যা সেটিংস পরিবর্তন করতে পারেন যাতে একটি প্রোগ্রাম সঠিক ডিরেক্টরিকে পয়েন্ট করে, এবং আপনি রিয়েলি একটি Symlink তৈরি করেন না, কিন্তু কিভাবে একটি ভালো Symlink সেটআপ ও ব্যবহার করবেন তা জানা খুব হ্যান্ডি হতে পারে।
