خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

چطور یک فایل ویندوز را بدون ساختن نسخه‌ای دیگر، هم‌زمان در دو پوشه قرار دادم

نمایش یک فایل Windows در دو پوشه بدون ساخت نسخه دوم
فایلی را که «نسخه اصلی» می‌نامیدم پاک کردم، اما حتی یک خط از محتوایش هم از بین نرفت.

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

برای آزمودن آن، هر کاری کردم تا از کار بیفتد: فایل را ویرایش و حذف کردم، میان درایوها جابه‌جایش کردم و به نتایجی رسیدم که انتظارشان را نداشتم.

یک فایل در دو پوشه

آیا ویندوز یک گیگابایت دیگر ذخیره کرده بود؟

برای شروع، فایل متنی ساده‌ای به نام original.txt ساختم و آن را در پوشه‌ای به نام Projects قرار دادم. سپس خط فرمان را باز کردم و این فرمان را اجرا کردم:

mklink /H C:\Test\Archive\second-name.txt C:\Test\Projects\original.txt

این فرمان یک پیوند سخت ساخت و نام دومی به نام second-name.txt به همان داده‌های فایل داد. این نام تازه مستقیماً به داده‌های همان فایلی اشاره می‌کرد که ساخته بودم. پس از اجرای فرمان، ویندوز هر دو مسیر را زیر نام یک فایل نمایش داد و به این ترتیب، ساخت پیوند سخت تأیید شد:

fsutil hardlink list C:\Test\Projects\original.txt

با اینکه ویندوز نشان می‌داد این دو نام به هم مرتبط‌اند، هیچ داده‌ای کپی نشده بود. فایل‌اکسپلورر کنار هر دو نام، اندازه 1GiB را نشان می‌داد، اما این اطلاعات چندان راهگشا نبود. برای بررسی دقیق‌تر، یک فایل آزمایشی 1GiB ساختم و دیدم فضای آزاد درایو C: حدود 1GiB کاهش یافت. سپس برای آن در پوشه دوم یک پیوند سخت ساختم؛ این بار فضای آزاد تنها ۶۷۱,۷۴۴ بایت، یعنی حدود ۶۵۶ KiB، کاهش یافت، نه یک گیگابایت کامل.

مطلب مرتبط:   نحوه نصب شبیه ساز iOS بر روی رایانه شخصی ویندوز 10

هنوز نمی‌توانستم دلیل مصرف آن چند بایت اضافه را پیدا کنم، اما فهرست پیوندهای سخت تأیید می‌کرد که ویندوز نسخه دیگری از داده‌های فایل نساخته است؛ فقط نام دومی به همان فایل افزوده بود.

یکی را ویرایش کنید، هر دو تغییر می‌کنند

همه‌چیز به شیوه ذخیره‌سازی برنامه بستگی دارد

سند متنی اصلی ساخته‌شده در پوشه A

با این فرمان، یک خط به فایلی که نام دوم را داشت افزودم:

echo Added through the second name >> C:\Test\Archive\second-name.txt

وقتی original.txt را باز کردم، آن خط از قبل درونش بود. هیچ همگام‌سازی یا کپی‌کردنی در کار نبود؛ من فقط همان یک فایل را ویرایش کرده بودم.

افزودن متن ساده‌ترین حالت است، زیرا داده‌ها مستقیماً در فایل موجود نوشته می‌شوند. بااین‌حال، بیشتر کاربران ترجیح می‌دهند فایل را در یک برنامه باز کنند، تغییر دهند و ذخیره کنند. من هم همین کار را امتحان کردم: second-name.txt را با نوت‌پد باز کردم، تغییری در آن دادم و فایل را ذخیره کردم. سپس به خط فرمان برگشتم و fsutil hardlink list را اجرا کردم.

بار دیگر هر دو مسیر در فهرست دیده می‌شدند و تغییرات نیز در original.txt وجود داشتند.

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

اگر از برنامه دیگری استفاده می‌کنید، فرمان fsutil hardlink list را اجرا کنید و مطمئن شوید هر دو مسیر همچنان نمایش داده می‌شوند.

مطلب مرتبط:   بدافزار Redirect Dipladoks.org چیست؟ نحوه حذف آن در ویندوز

نام را پاک کنید، داده را نگه دارید

فایل «اصلی» را پاک کردم و چیزی از دست نرفت

دو پوشه ساخته‌شده درون HardLinkTest برای این آزمایش

اینجا همان جایی بود که فکر می‌کردم شاید همه‌چیز از کار بیفتد. نخستین فایلی را که ساخته بودم، یعنی original.txt، حذف کردم. اما وقتی second-name.txt را باز کردم، هیچ‌چیز تغییر نکرده بود و حتی تازه‌ترین ویرایش‌هایم نیز همچنان باقی مانده بودند.

بااین‌حال، وقتی second-name.txt را هم حذف کردم، هر دو نام فایل از میان رفتند. آزمایش فایل 1GiB نیز همین موضوع را نشان داد: پس از حذف نام نخست، فضای آزاد درایو C: تقریباً تغییری نکرد؛ اما با حذف آخرین نام، حدود 1GiB فضا آزاد شد. تا زمانی که نامی به داده‌ها اشاره می‌کرد، آن داده‌ها در رایانه در دسترس باقی می‌ماندند.

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

هر فایل در رایانه شما نامی دارد که خود یک ورودی در فهرست پوشه برای دسترسی به داده‌های آن است. فرمان mklink /H امکان افزودن نام دوم را فراهم می‌کند. هرچند من یکی از نام‌ها را original.txt گذاشتم، در عمل هیچ تفاوتی وجود نداشت؛ هیچ‌یک از این دو نام هرگز از دیگری «اصلی‌تر» نبود.

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

مطلب مرتبط:   نحوه بازیابی فایل های پاک شده در ویندوز 11

تلاش من برای پیوند میان درایوهای C: و D: و راهکار مناسب برای گذر از مرز درایوها

اما کارم هنوز تمام نشده بود. کوشیدم فایلی را میان دو درایو پیوند دهم، ولی Windows بی‌درنگ عملیات را رد کرد و این پیام را نشان داد: «سامانه نمی‌تواند فایل را به درایو دیگری منتقل کند.» همچنین نمی‌توان برای پوشه‌ها پیوند سخت ساخت یا میان دو درایو پیوند سخت ایجاد کرد. برای پوشه‌ها یا فایل‌های قرارگرفته روی درایوهای متفاوت، دو گزینه دیگر را در نظر می‌گیرم:

پیوند سخت میان‌بر پیوند نمادین
توضیح نامی دیگر برای همان فایل یک فایل .lnk که نشانی مقصد را نگه می‌دارد پیوندی در سامانه فایل به مسیر مقصد
امکان پیوند میان درایوها خیر بله بله
قابل استفاده برای پوشه‌ها خیر بله بله
حذف پیوند سایر پیوندهای سخت همچنان به داده دسترسی دارند مقصد باقی می‌ماند و میان‌بر حذف می‌شود مقصد باقی می‌ماند و پیوند حذف می‌شود
حذف مقصد سایر پیوندهای سخت همچنان به داده دسترسی دارند ممکن است میان‌بر دیگر کار نکند ممکن است پیوند شکسته شود

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

منبع: این مطلب ترجمه و بومی‌سازی مقاله‌ای از MakeUseOf به قلم Afam Onyimadu است. مشاهده مقاله اصلی