لینوکس

تفاوت Hard Link و Symbolic Soft Link در لینوکس

تفاوت Hard Link و Soft Link در لینوکس

دسترسی سریع به فایل ها و دایرکتوری ها از مهم ترین ویژگی های سیستم عامل لینوکس است و شما در لینوکس می توانید با ایجاد shortcut یا میان بر که همان مفهوم Link است ، دایرکتوری یا فایل مورد نظر را سریعتر پیدا کنید . اما مفهوم Link در سیستم عامل لینوکس به دو نوع Hard Link و Soft Link تقسیم می شود که در این مقاله میخواهیم مفهوم لینک تفاوت های انواع آن را بررسی کنیم .

ابتدا باید بررسی کنیم که inode چیست ؟ بصورت خلاصه بدانید که inode اطلاعات مربوط به یک فایل را نگهداری می کند ، در واقع بر خلاف سیستم عامل ویندوز که ساختار دسترسی به اطلاعات آن به شکل دایرکتوری است در سیستم عامل لینوکس فایل ها با مفهوم inode شناسایی می شوند و محل فایل با یک شماره inode مشخص می شود. حالا که مفهوم inode را متوجه شدید ابتدا Hard Link را به شما معرفی می کنیم.

تفاوت Hard Link و Soft Link در لینوکس

Hard Link :

زمانیکه شما یک Shortcut یا Link در لینوکس بصورت Hard Link ایجاد می کنید ، این Shortcut شما به Inode فایل مورد نظر اشاره می کند و این یعنی اگر فایل شما جابجا شود و یا تغییر نام بدهد اصلا مهم نیست و Link شما همیشه درست کار می کند زیرا اصلا ارتباطی به اسم فایل شما ندارد و به inode متصل شده است . از ویژگی های Hard Link می توان به این اشاره کرد که شما هر تغییری که بر روی Hard Link یا فایل اصلی انجام بدهید بر روی هر دو اعمال می شود ، اگر شما اسم فایل اصلی را تغییر بدهید Hard Link شما با توجه به اینکه به ماهیت Inode اشاره می کند تغییر نخواهد کرد. اما از معایب استفاده از Hard Link این است که نمی توان از آن در بین چند فایل سیستم یا پارتیشن استفاده کرد ، با توجه به اینکه در هر فایل سیستم ساختار inode ها متفاوت است و شماره گذاری ها نیز تفاوت دارد Hard Link ها فقط در یک فایل سیستم قابل پیاده سازی هستند.

Soft Link : 

اما Soft Link ها که آنها را به عنوان Symbolic Link هم می شناسیم چیزی مشابه یا تقریبا همان مفهوم shortcut را در ویندوز برای ما تداعی می کنند ، شما آدرس یک فایل را دارید و به سیستم Soft Link با مسیر کوچکتر و دسترسی راحت تر معرفی می کنید ، ساختار Soft Link ها بسیار انعطاف پذیر است و شما از هر جایی می توانید به جای دیگر Soft Link بزنید و هیچگونه مشکلی در خصوص محل و فایل سیستم در Soft Link ها وجود ندارد .

اما معایبی هم در این نوع Link وجود دارد ، زمانیکه شما اسم فایل اصلی را تغییر بدهید Soft Link شما خراب یا در اصطلاح Broke می شود و دیگر نمی توانید از آن استفاده کنید زیرا ماهیت اصلی آن اتصال به اسم فایل است نه inode فایل ، برای اینکه بتوانید راحت تر از برخی از فایل ها استفاده کنید شما می توانید برای آنها با استفاده از Soft Link ها اسم مستعار هم بسازید ، برای مثال در سیستم عامل های خانواده RedHat ممکن است شما فایل grub.cfg را نداشته باشید و به جایش فایل دیگری جایگزین شده باشد ، شما می توانید فایل جدید را به اسم grub.cfg در دایرکتوری مورد نظر خودتان link کنید و برای خودتان یک میانبر از فایل جدید ایجاد کنید. معمولا در سرویس های پر کاربرد ما از Link ها در پروفایل های کاربری خودمان برای دسترسی سریعتر به فایل ها استفاده می کنیم. به تصویر بالا دقت کنید تفاوت این دو نوع Link نمایش داده شده است.

تفاوت Hard Link و Soft Link در لینوکس

چگونه Hard Link و Soft Link ایجاد کنیم ؟

ایجاد کردن Soft Link و Hard Link شاید ساده ترین کاری باشد که شما در سیستم عامل لینوکس می توانید انجام بدهید ، برای اینکار کافیست مسیر فایل اول را به همراه دستور ln وارد کرده و در قسمت دوم نیز اسم فایل جدید در مسیر جدید را وارد کنید به مثال زیر توجه کنید که ما یک فایل به نام grub.cfg که در مسیر ابتدایی وجود دارد را در پرفایل شخصی خودمان به نام grub خالی link می کنیم :

root@debian-itpro ~# ln -s /etc/grub.conf grub

مثال بالا با توجه به آوردن حرف s به معنی symbolic است و یک soft link است اگر بخواهیم مثال بالا را بصورت hard link ایجاد کنیم فقط s را حذف می کنیم و دقت کنید که grub شما باید در همان فایل سیستمی باشد که پرفایل کاربری root نیز قرار گرفته است به مثال زیر برای ایجاد hard link توجه کنید :

root@debian-itpro ~# ln /etc/grub.conf grub

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *