آشنایی با دستور ln در لینوکس (ساخت Symbolic Links)

یه symbolic link که symlink یا soft link نیز شناخته میشه، نوع خاصی از فایل می باشد که به یه فایل یا دایرکتوری دیگری اشاره می کند. در این آموزش روش استفاده از دستور ln جهت ساخت لینکهای سیمبولیک در لینوکس را پوشش خواهم داد.

انواع لینک

  • لینک های سخت – Hard links : لینک سخت را می توان به عنوان یک نام اضافی برای فایلی که وجود دارد در نظر گرفت. هارد لینک ها یک یا چند نام فایل را به یک inode یکسان مرتبط می کند. شما می توانید یک یاچند هارد لینک را برای یک فایل بسازید.
  • لینک های نرم – Soft links : چیزی شبیه شورتکات در ویندوز هستند. یک اشاره کننده ی غیر مستقیم به یک فایل یا دایرکتوری. برخلاف هارد لینک ها، سافت لینک می تواند به یک فایل یا دایرکتوری روی پارتیشن یا فایل سیستم متفاوت اشاره کند.

روش استفاده از دستور ln

دستور ln یک ابزار مبتنی بر خط-دستور (command-line utility) برای ایجاد لینک بین دو فایل هست. بصورت پیشفرض دستور ln لینک سخت می سازد. برای ساخت سیمبولیک لینک، باید از آپشن -s استفاده کرد.

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

ln -s [OPTIONS] FILE LINK

اگر هر دوی fileو linkداده شده باشند، ln لینکی بین فایل مشخص شده (FILE) و آرگومان دوم (LINK) ایجاد می کند.

اگر فقط یک فایل به عنوان آرگومان داده شده باشد یا آرگومان دوم نقطه (.) باشد، لینکی بین فایل داده شده و دایرکتوری فعلی که در آن کار انجام می شود برقرار می شود. نام symlinkمشابه با نام فایلی که به آن اشاره می کند می باشد.

بطور پیش فرض، ln هر گاه موفقیت آمیز باشد، چیزی به عنوان خروجی نمایش نمی دهد.

ساخت symlink به یک فایل

جهت ایجاد symbolic link  به فایل داده شده، ترمینال خود را باز کنید و تایپ کنید:

ln -s source_file symbolic_link

توجه : source_file را با نام فایلی که وجود دارد و می خواهید برایش symbolic link ایجاد کنید عوض کنید، و symbolic_link را با نام symbolic link مورد نظر خودتان عوض کنید. پارامتر symbolic link آپشنال می باشد. اگر آن را مشخص نکنید، دستور اقدام به ایجاد لینک جدید در دایرکتوری فعلی می کند.

در مثال پیش رو، ما اقدام به ایجاد یک symbolic link به نام my_link.txt به فایلی با نام my_file.txt کرده ایم.

ln -s my_file.txt my_link.txt

برای اینکه رسیدگی کنید symlink با موفقیت ایجاد شده، از دستور ls استفاده کنید.

ls -l my_link.txt

خروجی به شکل زیر خواهد بود:

lrwxrwxrwx 1 linuxize users  15 Nov  2 16:43  my_link.txt -> my_file.txt

کاراکتر l پرچم نوع فایل می باشد که یک symbolic link را نشان می دهد. و سیمبل -> فایلی که symlink به آن اشاره می کند را نشان می دهد.

ساخت symlink به یه دایرکتوری

دستور جهت ساخت symbolic link به یک دایرکتوری مشابه ساخت symbolic link به یک فایل می باشد. نام دایرکتوری را به عنوان پارامتر اول در نظر بگیرید و symlink را به عنوان پارامتر دوم.

برای مثال، اگر می خواهید یک symbolic link از دایرکتوری /mnt/sadegh_drive/books به دایرکتوری ~/my_books ایجاد کنید، کافیست دستور زیر را اجرا نمایید:

ln -s /mnt/sadegh_drive/books ~/my_books

Overwrite کردن Symlink ها

اگر اقدام به ساخت  symbolic link بکنید که درحال حاضر وجود دارد، دستور ln اروری خواهد داد:

ln -s my_file.txt my_link.txt
ln: failed to create symbolic link 'my_link.txt': File exists

جهت overwrite کردن مسیر مقصد symlink کافیست از آپشن -f استفاده کنید:

ln -sf my_file.txt my_link.txt

پاک کردن Symlinks :

برای پاک کردن symbolic links کافیست از دستور  unlink یا rm استفاده نمایید.

unlink symlink_to_remove
rm symlink_to_remove

مهم نیست از کدام دستور بالا استفاده کنید، فقط نیازی به اسلش (/) در انتهای نام لینک نیست.

مرجع