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 فایل یا پوشه اصلی رو حذف نمیکنه فقط اشاره گر پاک میشه