نحوه ایجاد پیوندهای نمادین (Symlinks) در لینوکس

لینوکس میانبر ندارد، اما دارای پیوندهای نمادین است - یا پیوندهای نمادین، همانطور که معمولاً نامیده می شود. اما پیوندهای نمادین دقیقاً چیست؟ و چگونه یکی را ایجاد می کنید؟ بیایید پیدا کنیم.

ما دستورات را در نصب اوبونتو امتحان خواهیم کرد، اگرچه نحو در همه توزیع های لینوکس یکسان عمل می‌کند. به اندازه کافی جالب است، سیملینک ها را می توان در رایانه مک نیز ایجاد کرد.

پیوندهای نمادین چیست؟

اگر می خواهید بتوانید از چندین مکان به یک فایل دسترسی داشته باشید، کپی کردن آن راه حل خوبی نیست. شما فضای دیسک را هدر می‌دهید، البته به دلیل وجود چندین فایل، ردیابی تغییرات را دشوار می‌کنید.

در یک سیستم عامل مبتنی بر رابط کاربری گرافیکی، با ایجاد میانبرها می توانید بر این مشکل غلبه کنید. برای یک سیستم عامل مبتنی بر CUI (مانند هر توزیع لینوکس )، پاسخ یک پیوند نمادین است. حتی مایکروسافت ویندوز می‌تواند از پیوندهای نمادین در برخی موقعیت ها استفاده کند.

یک پیوند نمادین یا یک پیوند نمادین فقط فایلی است که به فایل یا دایرکتوری دیگری اشاره می کند - حتی در یک سیستم فایل یا پارتیشن کاملاً متفاوت. باز کردن پیوند نمادین به شما امکان می دهد به همان فایل اصلی دسترسی داشته باشید و هر تغییری در فایل اصلی نیز منعکس شود.

این در مورد مجوزها نیز صدق می کند - استفاده از chmod برای تغییر مجوزهای یک فایل symlink در واقع مجوزهای فایل مورد نظر را تغییر می دهد.

انواع پیوندهای نمادین

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

برای شروع، پیوندهای سختفقط نام فایل‌هایی هستند که به همان inode اشاره می‌کنند. در حالی که این باعث می شود آنها از نظر ذخیره سازی و سرعت دسترسی بسیار کارآمد باشند، اما آنها را به فایل های موجود در سیستم فایل یا پارتیشن یکسان محدود می کند. و به دلیل عجیب بودن how folder access works in لینوکس ، نمی توانید از پیوندهای سخت برای فهرست ها نیز استفاده کنید.

از طرف دیگر،

پیوندهای نرم یا پیوندهای نمادینبیشتر شبیه میانبرهای دسکتاپ هستند. هر پیوند نرم‌افزاری اساساً یک فایل کوچک است که به داده‌های اصلی اشاره می‌کند، بدون اینکه مستقیماً به آن پیوند داده شود. این بدان معناست که پیوندهای نرم به راحتی می توانند به فایل ها و دایرکتوری ها در سایر پارتیشن ها و سیستم های فایل نیز بدون هیچ محدودیتی اشاره کنند.

پیوندهای سخت در مقابل پیوندهای نرم - از کدام نوع استفاده شود؟.

لینک‌های نرم همه‌کاره‌ترین شکل پیوندها هستند، زیرا می‌توان از آن‌ها هم در فایل‌ها و هم در دایرکتوری‌ها در چندین سیستم فایل بدون هیچ محدودیتی استفاده کرد. اما پس چرا ما حتی پیوندهای سخت داریم؟ آیا آنها نسبت به پیوندهای نمادین برای شما مزیتی قائل هستند؟

خب، روی کاغذ، پیوندهای سخت کارآمدتر هستند. از آنجایی که آنها از inodeهای یکسانی استفاده می کنند، فضای دیسک اضافی را اشغال نمی کنند و بسیار سریعتر از لینک های نرم افزاری قابل دسترسی هستند. به همین دلیل است که بسیاری از مدیران سیستم هر زمان که می توانید استفاده از پیوندهای سخت را توصیه می کنند.

با توجه به آنچه گفته شد، معایب استفاده از پیوندهای نمادین بسیار کم است. رایانه‌های مدرن به‌خصوص به چند کیلوبایت فضای اضافی اهمیت نمی‌دهند، و مگر اینکه سیستم را با میلیون‌ها پیوند نرم پر کنید، اندازه فایل اضافی به ندرت مهم است.

ایجاد پیوندهای نمادین

پیوندهای نمادین – یا به عبارت بهتر، پیوندهای فایل به طور کلی – با استفاده از دستور ln ایجاد می شوند. به طور پیش فرض، این دستور لینک های سخت را ایجاد می کند. برای ایجاد یک پیوند نمادین، باید پرچم -s را به دستور ln اضافه کنید.

نحو به اندازه کافی ساده است. دستور ln دو پارامتر دارد - مسیر فایل (یا پوشه) که باید به آن پیوند داده شود و مسیر فایل پیوندی که باید ایجاد شود.

مثل این:

ln -s user_names.txt names

این یک پیوند نمادین به نام نام ایجاد می کند که به فایل متنی user_names متصل است. برای اینکه ببینید آیا پیوند نمادین واقعاً ایجاد شده است، فقط از دستور ls استفاده کنید.

همانطور که می‌بینید، اوبونتو رنگ‌های مختلفی را برای دسته‌های مختلف فایل‌ها نشان می‌دهد، با فهرست‌هایی که با آبی تیره و پیوندهای نمادین با رنگ آبی روشن‌تر (در واقع فیروزه‌ای) مشخص می‌شوند.

ما می توانیم از همان نحو برای ایجاد یک پیوند نمادین برای پوشه نیز استفاده کنیم:

ln -s نمونه های example_folder

برای ایجاد پیوندهای نمادین به فایل‌ها و پوشه‌ها در فهرست‌های دیگر، به سادگی از مسیر کامل آنها استفاده کنید. به عنوان مثال:

ln -s examples/example3.txt distant_example

محدودیت های پیوندهای نمادین

پیوندهای نمادین روشی عالی برای اتصال فایل‌ها در سراسر سیستم شما بدون نیاز به کپی کردن هستند، اما محدودیت‌های خاص خود را دارند. بله، با وجود اینکه لینک های نرم محدودیت کمتری نسبت به لینک های سخت دارند، هنوز مواردی وجود دارد که باید در نظر داشته باشید..

اول، دستور ln در واقع پیوندهای ایجاد شده را تأیید نمی کند. این بدان معنی است که می توان نام فایلی را وارد کرد که در واقع وجود ندارد و هیچ خطایی دریافت نخواهید کرد. تنها راه تأیید پیوند این است که سعی کنید از آن استفاده کنید و ببینید آیا به فایل صحیح منتهی می شود یا خیر.

ثانیاً، در حالی که دسترسی یا تغییر مجوزهای پیوند نماد، ویژگی‌های فایل اصلی را تغییر می‌دهد، حذف فایل نیز صدق نمی‌کند. می‌توانید با خیال راحت پیوند نمادین را حذف کنید را بدون تأثیرگذاری بر فایل یا فهرست پیوند شده.

ایجاد پیوندهای نمادین در لینوکس

بزرگترین درد استفاده از ترمینال برای ایجاد پیوندهای نمادین، مشکل در دسترسی به فایل های مهم است که در دایرکتوری های مختلف پخش شده اند. راه حل هوشمند این است که پیوندهای نمادین به چنین فایل هایی را از فهرست اصلی خود ایجاد کنید، مانند میانبرهای دسکتاپ.

بر خلاف لینک‌های سخت، پیوندهای نمادین را می‌توان به راحتی و بدون هیچ محدودیتی ساخت، حتی برای اتصال به فهرست‌ها یا فایل‌ها در پارتیشن‌ها و سیستم‌های فایل مختلف. به خاطر داشته باشید که این همچنین به این معنی است که یک پیوند نمادین ممکن است به یک فایل ناموجود اشاره کند - برای بررسی وجود فایل باید سعی کنید به پیوند دسترسی پیدا کنید.

.

پست های مرتبط:


10.05.2023