Главная Windows Жесткие и символьные (символические) ссылки в Windows
2

Жесткие и символьные (символические) ссылки в Windows

symlinkЕсли вам когда-то приходилось просматривать расположения файлов штатных программ Windows, то возможно вы замечали одну странность. Некоторые файлы приложений дублируются, причем несколько раз. Например, в 64-разрядной Windows 8.1 обнаруживается целых 6 исполняемых файлов Блокнота notepad.exe, находящихся в разных каталогах системного раздела. Зачем вообще нужно такое странное дублирование?

А необходимо оно для обеспечения совместимости со сторонними приложениями, использующими Блокнот для каких-то своих нужд. Причина проста – в разных программах прописанный путь к Блокноту может отличаться, и чтобы исключить проблемы, разработчики Microsoft решили разместить notepad.exe в нескольких местах. То же самое касается ряда других штатных приложений, например, WordPad.

4233670_1

Жесткие ссылки или Hard Link

На самом деле дублирование совсем необязательно должно иметь место. То, что вы видите и определяете как реальный файл, в действительности может оказаться Hard Link — ссылкой особого типа, используемой для формирования путей к какому-нибудь файлу. Такие ссылки называются жесткими. Любопытно, что файл в NTFS может иметь до 1023 жестких ссылок, и все они будут выглядеть как его точная копия за исключением имени и размера. Как и ярлыки, жесткие ссылки могут иметь разные имена.

Зато содержимое и атрибуты у них общие, и если вы измените их в одной такой ссылке, то изменения коснуться всех остальных ссылок, даже тех, которые были удалены в Корзину. Что касается размера жестких ссылок, то это всего лишь одна видимость. Не имеющие практически никакого веса, ссылки этого типа определяются Проводником как имеющие реальный вес файлы, что иногда вызывает у пользователей немало вопросов и затруднений при ручной очистке ряда системных каталогов, того же Winsxs. Есть у Hard Link и свои ограничения. Так, создавать жесткие ссылки можно только на файлы и только в пределах одного тома.

К счастью, сталкиваться с жесткими ссылками рядовым пользователям приходится нечасто, иначе это наверняка бы привело к неразберихе и серьезным проблемам. Описывать все особенности поведения жестких ссылок мы не будем, так как это заняло бы слишком много времени. Вместо этого предлагаем вам создать Hard Link самостоятельно и поэкспериментировать с ними. Вот вам пример. Создайте на рабочем столе простой текстовый файл file1.txt и что-нибудь напишите в него. Теперь откройте командную строку и создайте на него пару жестких ссылок с именами file2.txt и file2.txt. Вот так:

cd %userprofile%\desktop

fsutil hardlink create file2.txt file1.txt

fsutil hardlink create file3.txt file1.txt

4233670_2

Обратите внимание, что после команды create первым идет имя жесткой ссылки, а затем имя оригинального файла. Также вы можете создавать жесткие ссылки на другие жесткие ссылки. В общем, развлекайтесь. Уверен, что вы найдете для себя немало интересного.

4233670_3

Символьные ссылки или Symbolic Link

В отличие от жестких, символьные ссылки или Symbolic Link обладают большей гибкостью. Предназначаются они для удобной организации объектов файловой системы, а также оптимизации производительности приложений на SSD-дисках. Ссылки этого типа могут создаваться и для файлов, и для каталогов, в том числе сетевых; они поддерживают связь между томами, используя относительные пути. Принципом работы символьная ссылка напоминает обычный ярлык.

Использование Symbolic Link может иметь смысл при необходимости получения доступа к одному файлу из разных мест. Создаются символьные ссылки командой mklink:

mklink D:\file2.txt %userprofile%\desktop\file1.txt

4233670_4

Первым после команды идет путь к символьной ссылке, вторым – путь к оригинальному файлу. Если нужно создать символьную ссылку для каталога, используется та же команда mklink, но с ключом \d.

mklink \d D:\folder2 %userprofile%\desktop\folder1

4233670_5

Внешне символьные ссылки почти ничем не отличаются от обычных ярлыков, за исключением пометки symlink в свойствах файла или даты создания вместо пути к оригиналу в каталоге. Также если вы удалите оригинал, а затем попробуете перейти по символьной ссылке, то она просто не откроется, тогда как при попытке открыть битый ярлык появится сообщение о недоступности оригинального файла. Но самое главное отличие от ярлыков в том, что при работе с символьными ссылками Windows по-прежнему будет считать, что вы работаете с оригинальным объектом.

На этом пока все. В следующий раз мы рассмотрим способ применения символьных ссылок на более конкретных примерах, а заодно узнаем, какие используются утилиты для работы с жесткими и символьными ссылками.