Symlink چیه و چطور ازش استفاده کنیم؟

Symlink چیه و چطور ازش استفاده کنیم؟

Symlink (Symlink Symbolic) یه میانبر هوشمند توی لینوکسه یه فایل یا پوشه که به یه فایل یا پوشه دیگه اشاره میکنه بدون اینکه خودش داده ای داشته باشه


چرا به Symlink نیاز داریم؟

  • دسترسی راحت تر

یه فایل توی یه مسیر طولانی و عمیق داری میخوای بدون جابجا کردنش از یه مسیر ساده تر بهش دسترسی داشته باشی

  • نسخه بندی و انتشار

وقتی نسخه جدید سایت رو توی یه پوشه جدا می‌ذاری با Symlink میتونی مسیر اصلی رو به نسخه جدید وصل کنی بدون قطعی

  • فضای کمتر روی دیسک

به جای اینکه فایل رو کپی کنی و دوبار فضا اشغال بشه Symlink فقط یه اشاره گر میسازه که فضا نمیگیره

  • مرتب سازی

فایل‌های پراکنده توی سرور رو با Symlink توی یه جا جمع میکنی

  • مهاجرت بدون دردسر

پوشه های حجیم مثل آپلودها یا بکاپ ها رو میبری رو یه دیسک دیگه ولی با Symlink طوری رفتار میکنی که انگار همونجان


چطور Symlink بسازیم؟

فرمول کلی:

ln -s [مسیر اصلی] [مسیر میانبر]

لینک کردن یه پوشه

ln -s /home/user/projects/myapp /var/www/myapp

الان /var/www/myapp به /home/user/projects/myapp اشاره میکنه هر تغییری توی یکی بدی توی اون یکی هم اعمال میشه


لینک کردن یه فایل

ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/mysite.conf

این دقیقا کاریه که Nginx انجام میده فایل کانفیگ توی sites-available هست ولی Symlink ش توی sites-enabled فعالش میکنه


نسخه بندی سایت

ln -s /var/www/releases/v2.0 /var/www/current

هر بار نسخه جدید میدی Symlink رو به پوشه نسخه جدید وصل میکنی سایت بدون قطعی آپدیت میشه


چطور Symlink رو تشخیص بدیم؟

ls -l

خروجی چیزی شبیه این نشون میده:

lrwxrwxrwx 1 user user 25 Jan 01 12:00 myapp -> /home/user/projects/myapp

فلش -> یعنی این یه Symlink هست و مسیر اصلی رو نشون میده


چطور Symlink رو حذف کنیم؟

unlink myapp

یا

rm myapp
دقت کن: حذف Symlink فایل یا پوشه اصلی رو حذف نمیکنه فقط اشاره گر پاک میشه
 amir

amir

برنامه نویس python, php طراح سایت