Philip Wiki

Персональный wiki-сайт

Инструменты пользователя

Инструменты сайта


docs:windows:ntfslinks

Работа с NTFS-ссылками

В данной статье рассмотрены так называемые ntfs-ссылки, которые пришли в windows-среду из nix-систем. Для работы с данным типом ссылок в ОС Windows используется командный интерпретатор (проще говоря консоль), так же существует множество как коммерческих, так и бесплатных программных продуктов.

Совсем в двух словах определение для «ещё не знавших», пожалуй звучит так: ntfs-ссылки - это что-то вроде ярлыков в системе windows. Только в отличии от последних, позволяют работать с ресурсами (папками или файлами) «прозрачно». То есть обращаясь к такой ссылке, система думает, что работает непосредственно с ресурсом (папкой или файлом).

Жёсткие ссылки (hard links) - это просто файловые записи, ссылающиеся на одно и то же место в области данных.

Когда создается жесткая связь, сам файл не копируется физически, а только появляется под еще одним именем или в еще одном месте, а его старые имя и местонахождение остаются нетронутыми. С этого момента жесткая связь неотличима от первоначальной записи в папке. Единственное отличие — то, что для жесткой связи не создается короткое имя файла, поэтому из программ ДОС она не видна.

Когда меняется размер или дата файла, все соответствующие записи в папках обновляются автоматически. При удалении файла он не удаляется физически до тех пор, пока все жесткие связи, указывающие на него, не будут удалены. Порядок их удаления значения не имеет. При удалении жесткой связи в корзину количество связей у файла сохраняется.

Жесткие связи поддерживаются в NTFS, начиная с NT 4.0.

  • жесткие ссылки могут быть только на NTFS-разделе, и связаны могут быть только файлы, находящиеся на одном разделе;
  • привязанный файл можно перемещать в каталоги этого же логического диска - связь не прервется (она нарушится только при перемещении на другой логический диск);
  • любой из файлов, связанных жесткой ссылкой, можно переименовывать - они могут иметь разные имена;
  • внешне (в отличие от простых ярлыков) нет никаких признаков того, что файл имеет жесткую связь;
  • связанных воедино файлов может быть сколько угодно, и изменение любого из них немедленно применится и ко всем остальным;
  • все связанные файлы абсолютно равноправны;
  • при удалении связанных файлов удален будет только конкретный выбранный файл, а остальные останутся (их тоже по отдельности можно удалить).

Точка монтирования (junction points)

NTFS начиная с версии NT 5.0 (Windows 2000/XP) поддерживает точки монтирования (точки соединения, точки монтирования каталогов, junction points, directory junctions). Точки монтирования каталогов в Windows 2000/XP известны как «directory junctions» — технология, позволяющая отображать любые локальные папки на любые другие локальные папки. Например, если папка D:\SYMLINK указывает на C:\WINNT\SYSTEM32 в качестве своей цели, то программа, обращающаяся к D:\SYMLINK\DRIVERS, будет на самом деле обращаться к C:\WINNT\SYSTEM32\DRIVERS.

Напрямую делать точки соединения на папки CD-ROM нельзя, но можно это ограничение обойти, смонтировав CD-ROM диск на папку NTFS-раздела.

Вообще, точки соединения отличаются от символических ссылок, по сути лишь возможностью работы исключительно с каталогами. До сих пор понятие этих двух типов ссылок сильно размыты, и четкого определения в рунетах найти сложно, часто junctions ошибочно называют символическими (symbolic) ссылками (подробнее про данный тип ссылок ниже).

Не удаляйте точку соединения с помощью проводника, команды del /s или других средств файловой системы, рекурсивно работающих с деревьями каталогов. Данные средства воздействуют на целевой каталог и все его подкаталоги. Для безопасного удаления точек соединения рекомендуется использовать только специальные утилиты для работы с точками соединения (начиная с Windows 7 Проводник позволяет безопасно удалять точки соединения).

Точка монтирования тома (volume mount point)

Всего существует два вида точек монтирования: точка монтирования каталога (junction point, о ней писалось выше) и точка монтирования тома (volume mount point). Различает их только источник монтирования (как следует из названия - каталок и том).

Символическая ссылка (символьная ссылка, symbolic links) — доступна с Windows Vista. Может указывать и на файлы, и на директории.

  • символические ссылки могут быть только на NTFS-разделах;
  • связаны могут быть директории и файлы, находящиеся на разных логических и физических дисках (и даже SMB ресурсах);
  • «привязанный» каталог или файл можно перемещать в любое место на NTFS;
  • cвязанные символической ссылкой директории и файлы равноправны по использованию, но не равноправны по переименованию и удалению (вы не можете удалить или переименовать первый каталог1), пока существуют созданные на него каталоги-ссылки);
  • любую из созданных символических ссылок можно переименовывать или удалять;
  • удаление каталога-ссылки не удалит файлы из оригинального каталога, а вот сами файлы через каталог-ссылку можно удалять;
  • внешне (в отличии от простых ярлыков) нет никаких признаков, что каталог или файл имеет символьную ссылку;
  • связанных воедино каталогов может быть сколько угодно, изменение любого из них немедленно применится и ко всем остальным.

Стоит заметить, что при доступе по сети, символические (symbolic) ссылки разрешаются на стороне клиента, в отличие от точки соединения (junctions). Т.е. для публикации каталогов в сети желательно использовать именно junctions-связи.

Программы

По моему мнению, на данный момент, лучшей программой для работы с ntfs-ссылками является Link Shell Extension (LSE).

Источники

1)
Точнее, всё это сделать можно, однако связь потеряется.
docs/windows/ntfslinks.txt · Последнее изменение: 16.06.2014 11:14 (внешнее изменение)