تفاوت hard link و soft link

ما در این پست قراره که تفاوت این دو نوع لینک رو یاد بگیریم و تا حدی بفهمیم که اصلا چی هستند.

نکته: من تا جایی که بلد هستم یاد میدم نه بشتر نه کمتر‌ ( البته یخ کم بیشتر:))

درضمن:

فقط به من اکتفا نکنید و فقط به حرف های من هم اعتماد نداشته باشید



inode :

شما باید اول با این مفهوم آشنا بشید؛ من خوشم نمیاد متنم زیاد و طولانی باشه پس همه اش رو به صورت نکته وار می گم مگر اونجا هایی که لازم باشه:)

whatis( یکم لینوکسی شد )inode:

inode محل نگهداری مربوط به یک فایل است و محل فایل با شماره آن مشخص

میشود.

نکته اول: فایل سیستم ها دنیایی از inode هست

نکته دوم: تویه لینوکس تقریبا همه چیز فایل هست!!!!

حالا چه چیز های تویه inode وجود داره؟:


  • مسیر اصلی فایل شامل base name و dirname هر فایل
  • تعداد لینک های هر فایل
  • آخرین تغییرات در فایل
  • تاریخ اخرین دسترسی به فایل
  • سطح دسترسی های مرتبط با این فایل (permission )

و خیلی از چیز های دیگه....

نکته :در حقیقت فایل سیستم شامل میلیون ها inode می باشد که با ایجاد هر فایل در لینوکس این فایل به یکی از این شماره ها (inode ) لینک میشه.



whatis hardlink?:

در صورتی که بخواهیم یک فایل با دو نام متفاوت داشته باشیم به گونه ای که فایل مورد نظر از دو مسیر قابل دسترسی باشد از مفهومی بنام hard link استفاده میشه.

خیلی کتابی بود نه؟

پس بزار دوباره نکته وار بگم:):

  • فایل هارد لینک برابر با فایل اصلیه ( معادل کپی کردن)
  • آی نود ( inode ) برابر با فایل اصلیه

میگی نه؟!! نیگا کن:

لطفا فقط و فقط به اون عدد های سمت چپ نگاه کنید که هردوشون 265927 هستند.

به نظر شما خصوصیات هارد لینک ها چیه؟:

  • هر تغییری که بر روی Hard Link یا فایل اصلی انجام شود بر روی هر دو اعمال می گردد.
  • اگر اسم فایل اصلی را کند Hard Link (با توجه به اینکه به ماهیت Inode اشاره دارد) تغییر نخواهد کرد.
  • یک Hard Link تنها در همان سیستم فایلی کار میکند که فایل اصلی در آن موجود است.
  • با هارد لینک در لینوکس  نمی‌توان بین دایرکتوری‌ها پیوند ایجاد کرد

حالا چیطوری تو لینوکس یه هارد لینک درست کنیم؟؟؟؟

این طوری:

خب حالا بزارید توضیح بدم که اصلا چی شد!!!!

  • مرحله اول: من یه فایل ساختم به نام هارد
  • مرحله دو: تبدیل ش کردم به یه فایل هارد لینک به نام هارد فایل ( نام جدید)

دستور تبدیل به هارد لینک:

ln my-file new-file

بخش اول دستور: با این دستور میشه هارد لینک ساخت ln

بخش دوم دستور: فایل فعلی هست که ساختم و از قبل داشتم my-file

بخش سوم دستور: اسم فایلی هست که میخوام بدم یا به عبارتی اسم جدید فایل که اسمش هست new-file

  • مرحله سوم: گرفتن مقدار آی نود هر فایل با دستور ls -li

نتیجه :

آی نود این دو فایلی که ساختیم برابر با 265705 هست.



whatis soft link:

سافت لینک در لینوکس مفهومی شبیه مفهوم shortcut در ویندوز را دارد. به soft link سمبولیک لینک هم می گویند. با ساخت این نوع از لینک، یک فایل جدید ساخته می شود که در آن مسیر فایل اول قرار دارد.

متاسفانه بلد نیستم این یکی رو غیر کتابی بگم چون خودمم اینجوری یاد گرفتم:(

اموزش ساختن سافت لینک :

شما مو به مو دستورات قبل رو اجرا میکنید اما بعد ln باید از آپشن s - استفاده میکنید



تفاوت هارد لینک و سافت لینک:

  • soft link برخلاف hard link (که یک نسخه کپی از فایل اصلی است) پیوند واقعی به فایل اصلی ایجاد می کند.
  • اگر فایل اصلی حذف شود، فایل ایجاد شده از طریق Soft Link چون به یک فایل غیر موجود اشاره می‌کند دیگر ارزشی ندارد.
  • در سافت لینک تنها تنها مسیر فایل اصلی نگهداری می شود و از محتوای آن خبری نیست.




لینک ایمیل من ( نه هارد لینک نه سافت لینک) برای پرسش و پاسخ و نظرات شما:

dhwqymhmdtaha@gmail.com

شماره کارت من برای حمایت؛ حمایت شما باعث دلگرمی من میشه و پشتکار من رو افزایش میده:

6280-2313-4679-7441

شاد و پیروز باشید:)