محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

تفاوت Soft Link و Hard Link لینوکس چیست؟ به زبان بسیار ساده

در هر سیستم عاملی مفهوم به نام shortcut یا میانبر وجود دارد و کارش هم مشخص است ، برای اینکه سرعت دسترسی به فایل ها را بالا ببرد و نیازی نباشد کاربر همه دایرکتوری ها را زیر و رو کند ، در سیستم عامل ویندوز ما این مفهوم را به نام shortcut می شناسیم و در سیستم عامل لینوکس تقریبا همین مفهوم به عنوان Link شناخته می شود. امروز می خواهیم در خصوص تفاوت بین Hard Link و Soft Link در سیستم عامل لینوکس صحبت کنیم.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

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

تفاوت soft link و hard link و symbolik Link در لینوکس

زمانیکه شما یک Shortcut یا Link در لینوکس بصورت Hard Link ایجاد می کنید ، این Shortcut شما به Inode فایل مورد نظر اشاره می کند و این یعنی اگر فایل شما جابجا شود و یا تغییر نام بدهد اصلا مهم نیست و Link شما همیشه درست کار می کند زیرا اصلا ارتباطی به اسم فایل شما ندارد و به inode متصل شده است . از ویژگی های Hard Link می توان به این اشاره کرد که شما هر تغییری که بر روی Hard Link یا فایل اصلی انجام بدهید بر روی هر دو اعمال می شود ، اگر شما اسم فایل اصلی را تغییر بدهید Hard Link شما با توجه به اینکه به ماهیت Inode اشاره می کند تغییر نخواهد کرد. اما از معایب استفاده از Hard Link این است که نمی توان از آن در بین چند فایل سیستم یا پارتیشن استفاده کرد ، با توجه به اینکه در هر فایل سیستم ساختار inode ها متفاوت است و شماره گذاری ها نیز تفاوت دارد Hard 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 ایجاد کنیم ؟

ایجاد کردن 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

با توسینسو متفاوت باشید


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات