سیملینك چیست و چگونه در سیستمهای عامل مختلف از آن استفاده كنیم؟
لینك سمبولیك
بهعنوان یك كاربر رایانه، اگر از شما بپرسند میانبرها (shortcut) چه هستند، احتمالا پاسخ خواهید داد اشارهگرهایی به یك فایل، فولدر یا یك برنامه. این تعریف صحیح است، ولی همه ماجرا نیست! نكته مهم اینجاست كه در دنیای رایانه چند نوع میانبر وجود دارد كه با هم یكسان نیستند. یكی از انواع میانبرها، لینك سمبولیك (Symbolic Link) است كه به آن سیملینك یا لینك نرم (soft link) هم گفته میشود. در این مطلب نگاهی انداختهایم به اینكه سیملینك چیست، چگونه آن را در سه سیستمعامل اصلی رایانهها میتوان ایجاد كرد و برای چه كاركردهایی به این نوع خاص از میانبرها نیاز پیدا خواهید كرد.
محمود صادقی
سیملینك چیست؟
این درست است كه سیملینك یك فایل میانبر به حساب میآید، ولی باید میان آن و یك میانبر استاندارد ـ مثلا به یك برنامه كه روی دسكتاپ ویندوزتان قرار میگیرد ـ تمایز قائل شد. كلیك روی هر دوی آنها، چیزی را كه به آن اشاره میكنند باز میكند، اما آنچه در پشت این عمل میگذرد، متفاوت است كه در ادامه توضیح میدهیم.
در حالیكه یك میانبر استاندارد صرفا به یكشئ (فایل، برنامه و...) خاص اشاره میكند، یكسیملینك بهصورتی است كه انگار خود آن شئ در آنجاست! رایانه شما و برنامهها، سیملینك را مانند خود آن شئ هدف میبینند. برای مثال، در مكاواس میتوانید اثباتش را وقتی مشاهده كنید كه در همان محل فایل اصلی، سیملینكی از آن بسازید. در این حالت، پیامی مبنی بر اینكه «فایل موجود است» داده میشود. با كپی سیملینك از محل دیگری به محل فایل اصلی هم همین اتفاق میافتد.
بگذارید برای توضیح بهتر تفاوت سیملینك و میانبر استاندارد، از دراپباكس كمك بگیریم. تصور كنید شما فولدر خاصی در هاردتان دارید كه میخواهید با دراپباكس بدون انتقال آن به فولدر دراپباكس همگامسازی (sync) كنید. در اینجا، ساختن یك میانبر عادی در دراپباكس فایدهای ندارد، زیرا این میانبر همگامسازی میشود، ولی تنها روی همین رایانه كار میكند و روی رایانه دیگری اشارهای نخواهد داشت.
اگر همین روند را با سیملینك انجام دهید، مشكلی نخواهد بود. به این دلیل كه دراپباكس، سیملینك را مثل فولدر واقعی میبیند و در نتیجه، داده موجود در فولدر را همگامسازی میكند. بنابراین در دستگاههای دیگر هم این فولدر به همراه دادههایش قابل دسترس خواهد بود، با وجود آنكه فولدر اصلی بخشی از دراپباكس نیست.
این نكته را هم مد نظر داشته باشید كه چه در حالت میانبر عادی و چه سیملینك، پاككردن آن به هیچ عنوان تأثیری روی شئ اصلی ندارد.
سیملینك چه كاركردهایی دارد؟
در حالت كلی، برای موارد ذیل خوب است به جای میانبر عادی از سیملینك استفاده كنید:
وقتی میخواهید به یك فایل از محلهای مختلف دسترسی داشته باشید، آن هم بدون نیاز به ساخت چند كپی و مصرف زیاد فضای دیسك. (سیملینكها تنها چند بایت حجم دارند)
نگهداری نسخههای مختلف از فایل با اطمینان از اینكه هر اشارهگری به آن همیشه به جدیدترین نسخهاش میرسد. (به این دلیل این مسأله درست كار میكند كه سیملینكها فعال باقی میمانند، حتی وقتی شما فایل هدف را با فایلی با همان نام جایگزین میكنید)
انتقال دادهها از درایو C:\ به مثلا یك هارد دوم بدون به همریختن عملكرد سیستم و برنامههایی كه نیاز به وجود دادهها در درایو C:\ دارند.
علاوه بر اینها، اگر شروع به استفاده از سیملینكها كنید، با كاركردهای بیشتری هم در مورد آنها برخورد خواهید داشت.
چگونه سیملینك بسازیم؟
سیملینكها را هم میتوان در ترمینال یا محیط دستوری ویندوز ساخت و هم با ماوس و كلیك. در اینجا هر دوی این روشها را برای سه سیستمعامل لینوكس، مكاواس و ویندوز بیان میكنیم.
در لینوكس، با استفاده از این دستور در ترمینال میتوانید سیملینكی به یك فایل یا فولدر بسازید:
ln -s [/path/to/file]
[/path/to/symlink]
در آن [/path/to/file] آدرس فایل اصلی و [path/to/symlink] آدرس فولدری است كه میخواهید سیملینك در آنجا قرار بگیرد.
در برخی توزیعهای لینوكس، امكان ساخت سیملینك در برنامه مدیریت فایل آنها نیز وجود دارد. برای مثال در ناتیلوس (Nautilus) كه یك مدیر فایل مشهور برای لینوكس است، با نگه داشتن كلیدهای كنترل و شیفت و كشیدن فایل اصلی به مقصد مورد نظر، یك سیملینك بسازید.
عینا از همان دستور فوق در مكاواس هم برای ساختن سیملینك استفاده میشود، چراكه اساس مكاواس هم مانند لینوكس، یونیكس است، اما توجه داشته باشید در این سیستمعامل امكان ساخت سیملینك از طریق فایندر (Finder) وجود ندارد و در هر صورت نیاز به ورود دستور در ترمینال است.
در ویندوز هم مانند لینوكس، ساخت سیملینك در محیط دستوری (Command Prompt)
انجام میشود و دستورش این است:
mlink [path/to/symlink]
[path/to/file]
برای ایجاد لینك سمبولیك به یك فولدر، این دستور را باید كمی تغییر دهید و به آن /d بیفزایید:
mlink/d[path/to/symlink]
[path/to/folder]
اگر علاقهای به استفاده از محیط دستوری ندارید، از یك ابزار گرافیكی به نام Link Shell Extension هم میتوانید برای ساخت سیملینك كمك بگیرید. این ابزار از لینك زیر قابل دانلود است:
http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html
نكته: سیستم، جلوی شما را برای ساخت یك سیملینك در داخل یك سیملینك دیگر نمیگیرد، ولی بهتر است خودتان این كار را نكنید! زیرا با این كار یك حلقه بینهایت ساخته میشود كه برای سرویسهای سیستمی مشكل ایجاد میكند.
سیملینكها و نامهای مستعار در مكاواس
اگر تا به حال در مكاواس نام مستعار (alias) برای یك فایل یا فولدر ساخته باشید، متوجه میشوید كه آنها هم شبیه سیملینكها عمل میكنند، اما یك تفاوت مهم میانشان وجود دارد: نام مستعار علاوه بر آدرسدهی به شیء مقصد، آن را با یك شاخص به نام inode (index node) نشانهگذاری میكند. این شاخص یكتاست و همراه با شئ مقصد در فایل سیستم جابهجا میشود. به همین دلیل حتی با جابهجایی شئ هدف، نام مستعار كماكان كار خواهد كرد. در حالیكه اگر مكان فایل هدف یك سیملینك را جابهجا كنید، به خطا برمیخورید! (خود سیملینك یا نام مستعار را میتوانید بهراحتی جابهجا كنید، مسأله شئ هدف است). البته در صورتی كه فایل هدف پاك شود یا تغییر نامی در یكی از فولدرهای بالایی آن اتفاق بیفتد، چه نام مستعار و چه سیملینك بلااستفاده خواهند شد. فایلهای نام مستعار در مكاواس بهصورت پیشفرض تگ alias دارند، ولی اگر به هر دلیلی این تگ پاك شده باشد، چطور میتوان آن را از سیملینك تشخیص داد؟ راه سریع این است كه با كلیك راست روی فایل، دیالوگ Get Info مربوط به آن را باز كنید. در این دیالوگ و در قسمت
General، اندازه فایل را نگاه كنید. اگر این اندازه صفر بود (zero bytes on disk)،
شما با یك سیملینك طرف هستید. علاوه بر این، با اجرای دستور ls -la در یكفولدر، سیملینك موجود در آن به شما نشان داده میشود. از همین دستور در لینوكس هم میتوانید برای دیدن سیملینكها استفاده كنید.
این درست است كه سیملینك یك فایل میانبر به حساب میآید، ولی باید میان آن و یك میانبر استاندارد ـ مثلا به یك برنامه كه روی دسكتاپ ویندوزتان قرار میگیرد ـ تمایز قائل شد. كلیك روی هر دوی آنها، چیزی را كه به آن اشاره میكنند باز میكند، اما آنچه در پشت این عمل میگذرد، متفاوت است كه در ادامه توضیح میدهیم.
در حالیكه یك میانبر استاندارد صرفا به یكشئ (فایل، برنامه و...) خاص اشاره میكند، یكسیملینك بهصورتی است كه انگار خود آن شئ در آنجاست! رایانه شما و برنامهها، سیملینك را مانند خود آن شئ هدف میبینند. برای مثال، در مكاواس میتوانید اثباتش را وقتی مشاهده كنید كه در همان محل فایل اصلی، سیملینكی از آن بسازید. در این حالت، پیامی مبنی بر اینكه «فایل موجود است» داده میشود. با كپی سیملینك از محل دیگری به محل فایل اصلی هم همین اتفاق میافتد.
بگذارید برای توضیح بهتر تفاوت سیملینك و میانبر استاندارد، از دراپباكس كمك بگیریم. تصور كنید شما فولدر خاصی در هاردتان دارید كه میخواهید با دراپباكس بدون انتقال آن به فولدر دراپباكس همگامسازی (sync) كنید. در اینجا، ساختن یك میانبر عادی در دراپباكس فایدهای ندارد، زیرا این میانبر همگامسازی میشود، ولی تنها روی همین رایانه كار میكند و روی رایانه دیگری اشارهای نخواهد داشت.
اگر همین روند را با سیملینك انجام دهید، مشكلی نخواهد بود. به این دلیل كه دراپباكس، سیملینك را مثل فولدر واقعی میبیند و در نتیجه، داده موجود در فولدر را همگامسازی میكند. بنابراین در دستگاههای دیگر هم این فولدر به همراه دادههایش قابل دسترس خواهد بود، با وجود آنكه فولدر اصلی بخشی از دراپباكس نیست.
این نكته را هم مد نظر داشته باشید كه چه در حالت میانبر عادی و چه سیملینك، پاككردن آن به هیچ عنوان تأثیری روی شئ اصلی ندارد.
سیملینك چه كاركردهایی دارد؟
در حالت كلی، برای موارد ذیل خوب است به جای میانبر عادی از سیملینك استفاده كنید:
وقتی میخواهید به یك فایل از محلهای مختلف دسترسی داشته باشید، آن هم بدون نیاز به ساخت چند كپی و مصرف زیاد فضای دیسك. (سیملینكها تنها چند بایت حجم دارند)
نگهداری نسخههای مختلف از فایل با اطمینان از اینكه هر اشارهگری به آن همیشه به جدیدترین نسخهاش میرسد. (به این دلیل این مسأله درست كار میكند كه سیملینكها فعال باقی میمانند، حتی وقتی شما فایل هدف را با فایلی با همان نام جایگزین میكنید)
انتقال دادهها از درایو C:\ به مثلا یك هارد دوم بدون به همریختن عملكرد سیستم و برنامههایی كه نیاز به وجود دادهها در درایو C:\ دارند.
علاوه بر اینها، اگر شروع به استفاده از سیملینكها كنید، با كاركردهای بیشتری هم در مورد آنها برخورد خواهید داشت.
چگونه سیملینك بسازیم؟
سیملینكها را هم میتوان در ترمینال یا محیط دستوری ویندوز ساخت و هم با ماوس و كلیك. در اینجا هر دوی این روشها را برای سه سیستمعامل لینوكس، مكاواس و ویندوز بیان میكنیم.
در لینوكس، با استفاده از این دستور در ترمینال میتوانید سیملینكی به یك فایل یا فولدر بسازید:
ln -s [/path/to/file]
[/path/to/symlink]
در آن [/path/to/file] آدرس فایل اصلی و [path/to/symlink] آدرس فولدری است كه میخواهید سیملینك در آنجا قرار بگیرد.
در برخی توزیعهای لینوكس، امكان ساخت سیملینك در برنامه مدیریت فایل آنها نیز وجود دارد. برای مثال در ناتیلوس (Nautilus) كه یك مدیر فایل مشهور برای لینوكس است، با نگه داشتن كلیدهای كنترل و شیفت و كشیدن فایل اصلی به مقصد مورد نظر، یك سیملینك بسازید.
عینا از همان دستور فوق در مكاواس هم برای ساختن سیملینك استفاده میشود، چراكه اساس مكاواس هم مانند لینوكس، یونیكس است، اما توجه داشته باشید در این سیستمعامل امكان ساخت سیملینك از طریق فایندر (Finder) وجود ندارد و در هر صورت نیاز به ورود دستور در ترمینال است.
در ویندوز هم مانند لینوكس، ساخت سیملینك در محیط دستوری (Command Prompt)
انجام میشود و دستورش این است:
mlink [path/to/symlink]
[path/to/file]
برای ایجاد لینك سمبولیك به یك فولدر، این دستور را باید كمی تغییر دهید و به آن /d بیفزایید:
mlink/d[path/to/symlink]
[path/to/folder]
اگر علاقهای به استفاده از محیط دستوری ندارید، از یك ابزار گرافیكی به نام Link Shell Extension هم میتوانید برای ساخت سیملینك كمك بگیرید. این ابزار از لینك زیر قابل دانلود است:
http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html
نكته: سیستم، جلوی شما را برای ساخت یك سیملینك در داخل یك سیملینك دیگر نمیگیرد، ولی بهتر است خودتان این كار را نكنید! زیرا با این كار یك حلقه بینهایت ساخته میشود كه برای سرویسهای سیستمی مشكل ایجاد میكند.
سیملینكها و نامهای مستعار در مكاواس
اگر تا به حال در مكاواس نام مستعار (alias) برای یك فایل یا فولدر ساخته باشید، متوجه میشوید كه آنها هم شبیه سیملینكها عمل میكنند، اما یك تفاوت مهم میانشان وجود دارد: نام مستعار علاوه بر آدرسدهی به شیء مقصد، آن را با یك شاخص به نام inode (index node) نشانهگذاری میكند. این شاخص یكتاست و همراه با شئ مقصد در فایل سیستم جابهجا میشود. به همین دلیل حتی با جابهجایی شئ هدف، نام مستعار كماكان كار خواهد كرد. در حالیكه اگر مكان فایل هدف یك سیملینك را جابهجا كنید، به خطا برمیخورید! (خود سیملینك یا نام مستعار را میتوانید بهراحتی جابهجا كنید، مسأله شئ هدف است). البته در صورتی كه فایل هدف پاك شود یا تغییر نامی در یكی از فولدرهای بالایی آن اتفاق بیفتد، چه نام مستعار و چه سیملینك بلااستفاده خواهند شد. فایلهای نام مستعار در مكاواس بهصورت پیشفرض تگ alias دارند، ولی اگر به هر دلیلی این تگ پاك شده باشد، چطور میتوان آن را از سیملینك تشخیص داد؟ راه سریع این است كه با كلیك راست روی فایل، دیالوگ Get Info مربوط به آن را باز كنید. در این دیالوگ و در قسمت
General، اندازه فایل را نگاه كنید. اگر این اندازه صفر بود (zero bytes on disk)،
شما با یك سیملینك طرف هستید. علاوه بر این، با اجرای دستور ls -la در یكفولدر، سیملینك موجود در آن به شما نشان داده میشود. از همین دستور در لینوكس هم میتوانید برای دیدن سیملینكها استفاده كنید.