Три механізми, одна ідея: показати те, що лежить в іншому місці
Жорстке посилання — це другий каталожний запис для того самого файла: обидва імені вказують на один запис MFT, а NTFS веде лічильник посилань — видаляєте одне ім'я, і дані живуть, доки не зникне останнє посилання. Жорсткі посилання працюють лише для файлів, ніколи для тек і ніколи між томами. Саме цей прийом лежить в основі WinSxS: сховище компонентів, System32 і гори резервних копій оновлень ділять ті самі фізичні файли, тож кожна «копія» не коштує на диску ані байта.
З'єднання (junction) — це точка повторної обробки на теці: технологія часів Windows 2000, що переспрямовує одну теку на іншу в межах машини. Так Windows робить привиди сумісності на кшталт «Documents and Settings», що вказує на C:\Users. Символічне посилання — сучасніший і здатніший варіант: воно вказує і на файли, і на теки, вміє відносні шляхи та переходи між томами, але для створення потрібні права адміністратора або режим розробника.
Команди і те, що вони насправді створюють
Усе робиться командою mklink, і вся різниця — у ключах. Відкрийте консоль від імені адміністратора: три наведені нижче форми покривають дев'яносто відсотків реальних випадків. Результат перевіряється командою dir /AL — точки повторної оброблення позначаються як <SYMLINK>, <SYMLINKD> або <JUNCTION>, а їхні цілі видно в дужках.
- mklink /H backup.txt original.txt — жорстке посилання: два імені, один файл, нуль зайвих байтів
- mklink /J C:\Link C:\RealFolder — з'єднання: застаріле, швидке, лише теки в межах тому
- mklink /D C:\Link C:\RealFolder — символічне посилання на теку: потрібні права адміністратора або режим розробника
- fsutil hardlink list file.txt — показує всі імена, за якими доступні дані
- dir /AL — список точок повторної обробки в теці з типом і ціллю
Де посилання кусаються: бекапи, чистильники і переміщення
Наївні лічильники місця враховують жорсткі посилання по одному разу на кожне, тому інструменти «дедуплікації» пишаючо рапортують про 40 гігабайтів уявної економії на здоровій Windows. Деякі чистильники йдуть за з'єднаннями в цілі й видаляють справжні дані через чорний хід; пристойні пропускають точки повторної обробки цілком. А якщо перетягнути теку із з'єднанням на інший диск, Провідник може мовчки замінити посилання повною копією цілі — і кілька гігабайтів з'являться з нізвідки.
Правила безпеки прості. Використовуйте посилання для структури, а не для зберігання і документуйте кожне з'єднання, створене в корені диска з даними. І не вірте розміру теки на томі, який не сканували з урахуванням жорстких посилань: перед видаленням «дубліката» виконайте fsutil hardlink list — якщо в даних два імені, перед вами взагалі не копія.
Питання та відповіді
З'єднання (junction) — це те саме, що ярлик?
Ні. Ярлик — це файл .lnk, який має розуміти сама програма; з'єднання працює на рівні файлової системи, тому будь-яка програма прозоро бачить вміст цільової теки.
Видалення жорсткого посилання видаляє початковий файл?
Ні. Дані зникнуть, лише коли видалено останнє жорстке посилання на них; до того моменту кожне ім'я — рівноправний власник, а не посилання на якийсь «справжній» оригінал.
Перевірте склад ліцензії до покупки.
Разовий 30-хвилинний тест охоплює базові функції. Інструменти з позначкою PRO залишаються заблокованими до активації платної ліцензії.
Читайте також
Написати нам: [email protected]