با استفاده از symlinks برای انتقال فایلها و پوشهها از تمامی مزایای دیسکهای اکسترنال و SSDهای خود بهرهمند شوید. Roland Waddilove به شما نشان میدهد چگونه آنها را خلق کنید.
یک symlink، یا اگر بخواهیم اسم کامل آن را بیان کنیم symbolic link، یک ویژگی سودمند است که در Windows Vista معرفی شد و راه درازی را طی کرد تا امروز به Windows 10 رسید. این ویژگی شما را قادر میسازد فایلها و پوشهها را بدون از بین بردن سازگاری با سیستم عامل یا سایر برنامههای کاربردی انتقال دهید و در عین حال از چندین کاربرد بدیهی و منطقی دیگر نیز برخوردار است. برای شروع باید اشاره کنیم این یک ویژگی خوب و مناسب و ساده برای افرادی است که از دیسک USB اکسترنال یا یک SSD (solid state drive) استفاده میکنند. اگرچه خود مایکروسافت symbolic links را اختراع نکرده است آنها چندین دهه در اختیار ما قرار داشتهاند و برای اولین بار 35 سال قبل در سیستم عاملهای لینوکس معرفی شدند.
آنها تاریخچهی بسیار جذابی در ویندوز دارند و به همین علت است که وقتی به ویندوز ویستا یا XP نگاه میکنید متوجه میشوید که چرا مایکروسافت از آن به شکل توکار در این سیستم عاملها پشتیبانی به عمل میآورد. این موضوع در عین حال نشانگر کاربردهای بسیار جالب آن در این سیستم عاملها است. اگر به یک کامپیوتر Windows XP دسترسی دارید Explorer را باز کنید و به ریشهی دیسک درایو نگاهی بیندازید.
پوشهای به نام C:\Documents and Settings در اینجا وجود دارد. برنامهها دادههای خود را در اینجا ذخیره میکنند و شما میتوانید فایلها و پوشههای هر یک از حسابهای کاربری را در اینجا مشاهده نمائید. شما پوشهای در C:\Documents and Settings دارید که تمامی فایلهای شخصی و دادههای برنامههایتان در آن ذخیره میشود. با عرضهی Windows Vista مایکروسافت به این نتیجه رسید که بهتر است یک پوشهی C:\Users در بردارندهی پوشههای شخصی باشد و C:\ProgramData دادههای برنامهها را ذخیره نماید.
Windows 7, 8, 10 نیز به استفاده از این شِما ادامه دادند. مشکل این است که کدنویسی بسیاری از برنامههای کاربردی برای این که از روی پوشهی C:\Documents and Settings بخوانند یا بر روی آن بنویسند دشوار بود و این مشکل در ویستا برطرف شد. البته راه حل آن پیادهسازی symbolic links بود که هر برنامهای که تلاش میکرد به C:\Documents and Settings دسترسی پیدا کند به C:\Users هدایت میکرد. برنامهها سپس دقیقاً به همان شکل قبل از Windows XP عمل مینمودند زیرا فکر میکردند روی C:\Documents and Settings مینویسند یا از روی آن میخوانند اما در واقع ویندوز به شکلی پنهانی همه چیز را به C:\Users و C:\ProgramData هدایت میکرد.
یک symlink تقریباً برای یک برنامهی کاربردی شفاف است و در عین حال میتواند به یک فایل یا پوشهای که در جای دیگری قرار دارد منتقل شود در حالی که اجازه میدهد با استفاده از مسیر قدیمی فایل به آن دسترسی پیدا شود. Symlinks برنامهها و ویندوز را فریب میدهد تا فکر کنند آن فایل و پوشه هنوز هم در مکان قدیمی قرار دارد اما در واقع در مکان دیگری جای گرفته است.
اگر بخواهید یک فایل یا یک پوشه را به یک مکان جدید بر روی همان دیسکی که مایکروسافت در ویندوز XP و ویستا قرار داده منتقل کنید این کار سودمندی خواهد بود اما در عین حال شما را قادر میسازد آنها را به یک دیسک درایو جدید منتقل نمائید. اگر یک دیسک اکسترنال USB ظرفیت بالا مثل 1 یا 2 ترابایت داشته باشید اما دیسک داخلی کوچک شما تقریباً پر شده باشد میتوانید فایلها و پوشهها را به درایو اکسترنالی که فضای بسیار زیادی دارد منتقل نمائید.
SSDها بسیار کوچکتر از دیسکهای مکانیکی هستند بنابراین چنان چه درایو PC خود را با یک SSD سریع جایگزین کنید فضای ذخیرهسازی شما به راحتی پر میشود. انتقال فایلها و پوشهها به دیسک اکسترنال و جایگزین ساختن آنها با یک symlink راه حل فوقالعادهای به شمار میرود. به عنوان مثال شما میتوانید برنامهای که در پوشهی C:\Program Files قرار دارد به یک دیسک اکسترنال یا SSD منتقل کنید و آن را با یک symlink جایگزین نمائید.
برنامهها و حتی خود ویندوز کماکان فکر میکنند پوشهی Program files هنوز هم بر روی C: است و این کار از بروز مشکلاتی که در غیر این صورت ایجاد میشد جلوگیری به عمل میآورد. کافی است تلاش کنید C:\ Program files folder را به یک درایو اکسترنال بکشید تا به سرعت متوجه شوید دیگر کار نمیکند.
ایجاد Symbolic Links
اگر قصد دارید symbolic links را در ویندوز ایجاد کنید باید به خط فرمان بروید و از mklink استفاده نمائید. هیچ اینترفیس گرافیکی محلی برای آن وجود ندارد و شما باید پارامترهای خط فرمان را با دقت و به درستی وارد کنید. در Windows 7 به Start>All Programs>Accessories بروید، سپس بر روی Command Prompt کلیک راست کنید و Run as administrator را انتخاب نمائید. در Windows 8، دکمههای Windows+S را فشار داده و command prompt را وارد نمائید، سپس در نتایج جستوجو کلیک راست نموده و Run as administrator را انتخاب کنید.برای مشاهدهی اطلاعات مربوط به help، باید mklink را تایپ نمائید. گزینههای Hard links و junctions را نادیده بگیرید زیرا واریاسیونهایی از symbolic links به شمار میروند و استفاده از این فرمان دو احتمال یعنی mklink (Link Target) یا mklink / d (Link Target) را اجرا میکند.
فرض کنید قصد داریم یک برنامه را از C:\MyFolder\MyProg.exe به D:\Files\MyProg.exe منتقل کنیم. شما میتوانید از نسخهی اول فرمانی شبیه زیر برای انجام این کار استفاده نمائید:
Mklink C:\MyFolder\MyProg.exe D:\Files\MyProg.exe
Linkهمان symbolic linkی که ایجاد میشود و Target مکان جدیدی است که به آن اشاره میکنید. برای انتقال یک پوشه یا دایرکتوری، از پارامتر /D استفاده کنید:
Mklink /d C:\Folder D:\NewFolder
در اینجا از دو مسیر فایل و پوشهی بسیار ساده استفاده شده است و اگر در اسامی فضای خالی وجود داشته باشد شما باید از quotes استفاده کنید، بنابراین C:\My Folder در خط فرمان باید به شکل C:\My Folder مورد استفاده قرار گیرد. در عمل شما این کار را برای انتقال فایل یا پوشهها به یک مکان جدید و با استفاده از Explorer انجام میدهید. سپس symlink را در مکان اصلی خلق میکنید.
Symbolic Links در اغلب موارد کار میکند اما در مواقعی جواب نمیدهد و این موضوع به نرمافزاری که به پوشه دسترسی دارد بستگی پیدا میکند. اگر مشکلی ایجاد شد، میتوانید جایگزین ساختن پارامتر /d را با /j امتحان کنید که یک junction ایجاد میکند که نوع متفاوتی از symlink محسوب میشود.
نرمافزارهای ثالث
استفاده از یوتیلیتی خط فرمان mklink دشوار نیست اما مسیرهای طولانی در معرض خطای تایپ قرار دارند و تایپ آنها کار کسل کنندهای است. یوتیلیتیهایی وجود دارد که این کار را سادهتر میکنند. به عنوان مثال SymMover چندین سال است در دسترس قرار دارد؛ در واقع آنقدر طولانی که وبسایت اصلی آن از بین رفته اما هنوز هم از طریق لینیک Cnet.co/1MxEvjR در دسترس کاربران است.این برنامه برای تسهیل انتقال برنامهها به پوشهها یا درایوهای جدید طراحی شده است. آن را اجرا کنید و برای اضافه کردن پوشهی مقصد، مثلاً E:\programs بر روی آیکون چرخدنده کلیک نمائید. سپس بر روی دکمهی (+) کلیک کرده تا لیست برنامههایی که میتوانند منتقل شوند نمایش یابد. برنامههایی که میخواهید به لیست منبع اضافه شوند انتخاب کنید. کلیک بر روی پیکان سمت راست، آیتمهای منبع را به پوشهی مقصد منتقل میکند و آن را با یک symbolic link جایگزین مینماید.
شما میتوانید برنامهها را انتخاب کنید و آنها را با کلیک بر روی پیکان سمت چپ منتقل نمائید. این کار برای انتقال برنامهها از یک درایو به درایو دیگر مفید اما اندکی مشکلدار است. Link Shell Extension (bit.ly/100GnDc) نیز آیتمهای بیشتری به منوی کلیک راست در پنجرههای Explorer اضافه میکند. بر روی یک پوشه کلیک راست کرده و Pick Link Source را انتخاب کنید، به پوشهی دیگر بروید و Drop As, Symbolic Link را انتخاب کنید.
این کار یک symbolic Link برای پوشهی منبع ایجاد میکند. اگر قصد دارید یک پوشه را منتقل نمائید باید ابتدا آن را انتقال دهید و سپس در مکان اصلی یک لینک جایگزین برای آن ایجاد نمائید. مثل SymMove، این برنامه نیز اندکی غیرقابل اطمینان به نظر میرسد، گاهی اوقات کار میکند و گاهی اوقات جواب نمیدهد. اما ارزش تلاش و امتحان کردن را دارد.
منبع مقاله :
ماهنامه کامپیوتری بزرگراه رایانه شمارهی 188، سال هجدهم، شهریور 1394