Может кому-то пригодится!
До текущего момента, я не знал, как делать символьные ссылки в Windows.
Думаю, то, что удалось выяснить, может показаться кому-нибудь полезным.
Сразу оговорюсь, что под ссылками в Windows я понимаю ссылки в NTFS. В FAT механизмов ссылок, насколько мне известно, предусмотрено не было.
Ядро Windows поддерживает следующие виды ссылок:
- Hard Links — жёсткие ссылки, как в *nix. Доступны начиная с Windows NT4.
- Junction Points — аналог символических ссылок. Доступен начиная с Windows 2000 (NTFS 5).
- Symbolic Links — символьные ссылки. Доступны начиная с Windows Vista.
Если вы никогда не имели дела с символическими и жёсткими ссылками, но хотели бы узнать о них, советую прочитать отрывок из документации файлового менеджера FAR, спасибо хабрачеловеку allemeine. Там говорится только о Hard Links и Junction Points, но этого вполне достаточно. Symbolic Links действуют так же, как и Junction Points, с той разницей, что могут указывать на файлы (и реализованы в Windows по-другому).
Hard Links можно создавать только на файлы, Junction Points — только на директории, Symbolic Links — на файлы и директории. В дальнейшем под «жёсткими ссылками» подразумеваются Hard Links, под «символьными» — Junction Points и Symbolic Links.
Жёсткие ссылки действительны в пределах одного раздела, символьные — могут пересекать границы разделов. В связи с этим символьные ссылки могут поломаться, если структуру разделов поменять.
Не со всем, что поддерживается ядром, умеет нормально работать эксплорер. Будьте осторожны при использовании Junction Points в версиях Windows до Vista. При удалении Junction Point эксплорер может залезть внутрь директории, на которую ссылается Junction Point и поудалять там всё, а затем удалить Junction Point, хотя должен лишь удалить ссылку. Наверняка могут возникнуть проблемы и при перемещении или копировании Junction Point’ов.
Мне неизвестно, нормально ли в версиях Windows до Vista относятся к Junction Points стандартные утилиты типа rmdir.
Дополнительные материалы по теме
Отмечу англоязычную статью, в которой описаны нюансы использования ссылок и некоторые программы, позволяющие с ними работать. Статья устаревшая, так что в ней говорится только о Hard Links и Junction Points (причём на последние в статье нередко ссылаются, как на symbolic links…).
Софт
Теперь можно перейти к рассмотрению программ для работы со ссылками. Да-да, если вы не пользуетесь FAR (см. ниже), вам понадобятся отдельные программы. Все программы, перечисленные ниже, бесплатны.
Утилиты от Microsoft
Windows >= Vista
В Windows Vista добавили команду mklink
для создания символьных и жёстких ссылок (спасибо за информацию хабрачеловеку metamorph).
Windows >= 2000
fsutil hardlink create ссылка файл
Создаёт Hard Link на файл (источник).
linkd ссылка директория
Создаёт Junction Point на директорию (источник). Утилита входит в Microsoft Windows Resources Kit.
Расширения для Explorer
NTFS Link интегрируется в Explorer и добавляет во всплывающее меню, появляюшееся после перетаскивания правой кнопкой мыши, пункты «Create junction point» и «Create hard link». Кроме того, она перехватывает вызовы Explorer’а, обеспечивая нормальное перемещение/копирование/удаление созданных ссылок.
NTFS Links (не путать с дополнением для Total Commander, см. ниже) — абсолютно аналогичная программа.
Я рекомендую: Link Shell Extension — аналогичная программа, обладающая расширенным функционалом и очень подробным описанием.
NTFS Links — дополнение для Total Commander
Страница программы (за информацию спасибо хабрачеловеку SamDark). Плагин может запускаться как отдельная программа, вне Total Commander’а.
FAR
Консольный файловый менеджер FAR уже давно поддерживает Hard Links и Junction Points «из коробки». Для создания ссылки используйте сочетание клавиш Alt-F6 😉
Junction Link Magic
Junction Link Magic — программа с графическим интерфейсом для создания, изменения и модификации Junction Points.
Junction — консольная программа для создания Junction Points
Junction лучше, чем linkd
, тем, что не нужно тащить весь Resource Kit 🙂
Оригинал статьи взять с habrahabr.ru