Использование ссылок на файлы и директории в некоторых случаях может решить достаточно сложные задачи. Но используют их преимущества в основном пользователи операционных систем Unix и Linux, хотя в Windows они тоже есть. В начале попробуем разобраться, что такое файловая ссылка, и как она работает.
Помимо ссылок на уровне файловой системы NTFS в операционной системе Windows еще существуют так называемые ярлыки. Это не файловые ссылки. Они являются обычными файлами с расширением .lnk, но в их содержании записан путь к объекту, на которой они ссылаются. Однако их нельзя использовать как путь к файлам. Например, при копировании ярлыка на флешку скопируется сам ярлык, а не файл, и на другом компьютере не откроется. О ярлыках поговорим позже.
Файловые ссылки воспринимаются большинством программ как сами файлы, на которые они ссылаются. Исключением являются лишь системные утилиты, которые предназначены для работы с файловыми ссылками, только они воспринимают их как ссылки. Ссылку на файл можно использовать вместо пути. Ссылку на папку можно использовать как часть пути к её содержимому.
В операционной системе Windows 7 есть несколько различных видов ссылок: жесткие ссылки (hard link или alias), символические ссылки (symbolic links или symlinks), точки соединения (junction) и точки монтирования (Reparse point). Они являются частью файловой системы NTFS. На FAT и FAT32 их нет.
Наиболее часто используются символические ссылки. Их еще называют «мягкими» ссылками. Они появились в Windows Vista. Согласно определению от Microsoft это объекты файловой системы, которые ссылаются на другие объекты файловой системы. Они могут указывать на файлы, папки или сетевые папки. Символическая ссылка хранит текстовую запись, обрабатываемую операционной системой как путь к другому файлу или папке. Объект, на который ссылается ссылка, называется целью. Его может не быть. Например, он может быть удалён и перемещен. В таком случае ссылка ведет в никуда. Подобные ссылки называют сломанными (broken). Символические ссылки воспринимаются большинством программ как пути к самому файлу. При удалении символической ссылки, сам файл не удаляется.
Еще есть так называемые жесткие ссылки, которые представляют собой псевдонимы пути файла. Они позволяют разместить файл в нескольких местах сразу, которые расположены на одном и том же логическом диске. В операционной системе Windows подобные ссылки можно создавать исключительно на файлы, но не на папки. По сути они являются дополнительными путями к одному и тому же файлу. При редактировании файла по любому его пути, он изменяется по всем путям, так как хранится всего один экземпляр файла. При удалении файла по любому пути, если он расположен в нескольких местах, удаляется лишь путь, а не сам файл. Файл удаляется лишь при удалении последней жесткой ссылки на него. Каждый файл имеет как минимум одну жесткую ссылку — путь к файлу.
Остальные типы ссылок используются редко. Точки соединения впервые появились в операционной системе Windows 2000. Они предназначены для ссылки на папки. Их часто путают с жесткими ссылками. В Windows Vista с их помощью перенаправлены некоторые системные папки в новые места. Например, в Windows XP профили пользователей размещались в папке «C:\Documents and Settings», а с приходом Windows Vista стали в паке «C:\Users». Также изменилась и структура профилей. Поэтому при помощи точек соединения старые программы могут работать с ними по старым адресам. Например, в Windows XP в профиле пользователя User была папка «C:\Documents and Settings\User\Application Data» в которой программы могли сохранять пользовательские данные. В Windows Vista и Windows 7 этой папка расположена по адресу «C:\Users\User\AppData\Roaming». Но старые программы могут использовать старый адрес «C:\Documents and Settings\User\Application Data», который автоматические перенаправляется в «C:\Users\User\AppData\Roaming».
Точки монтирования используются для присоединения частей файловых систем. Они представляют собой пустые папки, в которых отображается содержание других папок. Например, их можно использовать для подключения логических или физических дисков без выделения для них особых букв, по аналогии с Unix и Linux системами. В домашних условиях это удобно при использовании устройств подобных универсальному кардридеру, который для каждого типа карточек создает по виртуальному диску. Вместо выделения под них «E:», «F:», «G» и т. д., которые создают постоянную путаницу, можно поключить их по адресам «C:\Cards\SD», «C:\Cards\MemoryStick» и «C:\Cards\MicroSD». В таком случае не потребуется помнить какая буква для какого типа карты памяти выделена.
С более подробной информацией о каждом виде файловых ссылок и их использованию в Windows можно ознакомиться в библиотеке Microsoft:
О создании и пользе файловых ссылок для обычных пользователей можно почитать в следующей записи.