لینوکس و تاثیر آن در دنیای سیستم عامل ها

هر آنچه بایستی در مورد Hard Link در لینوکس بدانید

در این مقاله به Hard Link در لینوکس می پردازیم اما قبل از آن بایستی با مفاهیمی آشنا شوید همانطور که می دانید فایل سیستم مجموعه بسیار زیادی از inod ها می باشد. به طور کلی از آنجایی که همه چیز در همه توزیع های لینوکس به صورت یک فایل است هر فایل دارای یک inod number یکتا می باشد. در inode هر فایل اطلاعات بسیار زیادی نگه داری می شود:

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

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

یک سناریو عملی را بررسی خواهیم کرد.برای مثال در فولدری بنام folder1 اقدام به ایجاد یک فایل بنام orginalfile می نماییم.با دستور nano در این فایل عبارت هایی را وارد و ذخیره می کنیم.

Mkdir folder1

Cd folder1

Touch orginalfile

پیشنهاد ایران هاست برای وب سایت های لینوکس، استفاده از سرورهای ابری با سرعت و Uptime بالاست.

همین امروز سفارش دهید

Nano orginalfile

حال به مسیر دیگری می رویم و یک فولدر دیگری بنام folder2 ایجاد می کنیم  و داخل آن با دستور ln در لینوکس که برای ایجاد هارد لینک ها می باشد فایل جدیدی بنام linkfile را به orginalfile در مسیر قبلی ساخته شده لینک می کنیم.

Cd /

Mkdir folder2

Cd folder2

Ln /folder1/orginalfile  /folder2/linkfile

به همین راحتی توانستیم اقدام به ساخت یک لینک از نوع Hard نماییم.با گرفتن لیست از هر دو فایل مورد نظر از طریق دستور زیر میشخص می شود که inode number هر دو فایل یکی است.این بدان معنی و مفهوم است که از دید سیستم این دو فایل در حقیقت یک فایل هستند اما با دو نام متفاوت.هر تغییری که در فایل orginalfile انجام شود این تغییر در فایل linkfile نیز اعمال خواهد شد . بالعکس.

در صورتی که تاریخ آخرین به روز رسانی هر کدام از فایل ها تغییر کند این تغییر بر دیگری نیز اعمال خواهد شد. در صورتی که permission مربوط به هرکدام از فایل ها تغییر کند سطح دسترسی فایل دیگر نیز به همان صورت تغییر خواهد یافت.نتیجه گیری نهایی اینکه هر تغییری که در یکی از فایل ها انجام شود آن تغییر در فایل دوم نیز اعمال خواهد شد.

Hard Link در لینوکس

در این نوع از لینک دهی در صورتی که فایل اصلی (اورجینال) اولیه حذف گردد می توانید از طریق مسیر دوم مجدد به فایل دسترسی داشته باشید در حقیقت می توان به عنوان یک mirror و یا بک آپ فایل در نظر گرفت.اما در نظر داشته باشید این نوع لینک دهی دارای محدویت های اساسی می باشد که در زیر به بررسی این محدودیت ها می پردازیم.

۱.در صورتی که فایل اصلی در یک پارتیشن دیگری باشد و شما بخواهید hardlink این فایل را در پارتیشن مجزای دیگری داشته باشید امکان پذیر نمی باشد.علت این مورد به دلیل تفاوت file system های مختص به هر پارتیشن می باشد.پس نتیجه گیری ما از این محدودیت این است که Hard Link در لینوکس قابلیت cross partitioning نداشته و هر دو فایل یعنی فایل اصلی و hardlink ان حتما بایستی داخل یک پارتیشن باشند

۲.hardlink فقط برروی فایل اعمال می شود و شما نمی توانید این سناریو را در دایرکتوری ها نیز داشته باشید.اساسا یک دایرکتوری با دو نام متفاوت در directory tree لینوکس نمی توان داشت .پس نتیجه گیری مهم این شد که ما تنها و فقط از file ها می توانیم hardlink ایجاد کنیم

 

  • can’t cross the file system boundaries
  • can’t link directories
  • has the same inodes number and permissions of original file
  • permissions will be updated if we change the permissions of source file
  • has the actual contents of original file, so that you still can view the contents, even if the original file moved or removed

 

در ادامه یک مثال و نمونه عملی از Hard Link در لینوکس را بررسی خواهیم کرد

echo “Welcome to OSTechNix” >source.file

cat source.file

Welcome to OSTechNix

ln source.file hardlink.file

cat hardlink.file

ls –lia

Sample output:

total 16

۱۵۷۴۵۳۲۶ drwxr-xr-x 2 sk users 4096 Dec 13 15:22 .

۱۵۷۲۸۶۴۲ drwx—— ۴۹ sk users 4096 Dec 13 14:50 ..

۱۵۷۴۵۵۵۵ -rw-r–r– ۲ sk users 21 Dec 13 15:20 hardlink.file

۱۵۷۴۵۵۵۵ -rw-r–r– ۲ sk users 21 Dec 13 15:20 source.file

rm source.file

cat hardlink.file

به شما پیشنهاد می شود مقاله ما را برای کسب اطلاعات در حوزه ی دستور cpio مطالعه نمایید.

با کارت بانکی باشگاه ایران هاست پولتان به حسابتان باز می گردد.

همین حالا رایگان عضو شوید

اشکان نصیری

مدیر سرور در ایران هاست با +۵ سال سابقه در صنعت میزبانی وب و کارشناسی ارشد MBA

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

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

نوشته های مشابه

دکمه بازگشت به بالا