На самом деле, переходы существуют с Windows 2000; это символические ссылки, которые появились в Vista. (Строго говоря, они появились в XP, но ntfs.sys
не раскрывал эту функциональность до Vista.) Ни соединения, ни символические ссылки не похожи на жесткие ссылки; оба из них представлены как разные объекты файловой системы, а жесткие ссылки - это разные имена одного и того же файлового объекта. Этот последний факт можно проверить, заметив, что списки ACL для всех жестких ссылок файла всегда одинаковы.
Я не думаю, что символические ссылки существуют только для совместимости с Linux/Unix. Символьные ссылки на папки более универсальны, чем переходы:
- Симлинки могут указывать на относительные пути. Хоть
mklink /j ..\..\relative\stuff
будет успешным, получающееся соединение фактически использует результирующий абсолютный путь. (Смотрите вывод dir /a
.)
- Симлинки могут указывать на удаленные тома или пути UNC. Соединения не могут.
Жесткие ссылки на каталоги теоретически возможны, но если их разрешить, откроется червь - каталоги смогут буквально содержать себя. Многие приложения, которые рекурсивно проверяют файловую систему, сломались бы, потому что не было бы никакого способа отличить цикл от действительно глубокого и странно названного дерева. (С символическими ссылками и переходами записи различимы.) Приложению придется ткнуть в бухгалтерию NTFS, и в основном никто не делает. Жесткие ссылки на каталог также открыли бы возможность наличия в каталоге двух (или более!) Каталогов. настоящие родители. Короче говоря, нарушение нециклической модели структуры каталогов создает множество сложностей. Дальнейшее чтение: этот вопрос по Unix и Linux (я знаю разные ОС, но применимы те же соображения).
Я думаю, что вы выяснили широкое использование символических ссылок и соединений. Еще одно распространенное использование в Windows - это монтирование диска в качестве каталога на существующем диске. (См. Раздел « Изменение буквы диска и пути к нему» ).