×

Создаём символические ссылки (symbolic link) в Windows

Не так давно мне понадобилось создать символические ссылки. До этого момента я примерно представлял что это такое, но не разу не сталкивался с необходимостью их использовать.

Википедия выдаёт вот такое определение:

Символьная ссылка (также симлинк от англ. Symbolic link, символическая ссылка) — специальный файл в UNIX-подобных операционных системах, для которого в файловой системе не хранится никакой информации, кроме одной текстовой строки. Эта строка трактуется как путь к файлу, который должен быть открыт при попытке обратиться к данной ссылке. Символьная ссылка занимает ровно столько места на файловой системе, сколько требуется для записи её содержимого (нормальный файл занимает как минимум один блок раздела).

Источник

Зачем они мне нужны

Один из наших рабочих сайтов работает под управлением CMS Bitrix. Работает и работает, нареканий почти нет. Мы решили создать еще один сайт на Bitrix, используя мультисайтовость. Оба сайта должны были содержать свой контент, отвечать на разные имена, но использовать одну базу данных, а также единую админку.

Одним из шагов в настройке такой системы было создание в корневой директории виртуального сервера символических ссылок на папки с ядром битрикса. Тут-то мне и пришлось познакомиться с симлинками.

Ставим задачу

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

Команда linkd предназначена для создания символьных связей (junction points) в системах поддерживающих NTFS. Чтобы данная команда работала необходимо установить Microsoft Windows Resource Kit, что не есть хорошо.

Команда mklink была добавлена в Windows Vista, имеется также в Windows 7. Она создаёт символические ссылки. Казалось бы, это что нужно, но есть одно но.

Использовать консоль каждый раз, когда нужно создать или удалить символическую ссылку это удел линуксоидов. Было решено искать программу для создания симлинков с понятным интерфейсом.

Требования к искомой программе были следующие:

  1. умение создавать символические ссылки
  2. возможность просматривать наличие симлинков
  3. правильное удаление символических ссылок, не затрагивающее папку-источник

Решаем проблему

Очень многие программы требовали перезагрузки после установки. На домашнем компьютере это лишь небольшое неудобство. Но при установке подобных программ на сервер обслуживающий несколько сайтов перезагрузка системы недопустима.

Методом проб и ошибок на одном сайте была найдена очень полезная программка Alax.Info NTFS Links, которая реализует весь необходимый функционал и не требует перезагрузки.

Эта программа встраивается в контекстное меню Windows и позволяет создавать символические ссылки простым переносом папки правой кнопкой мыши.

Новый пункт в выпадающем меню

Новый пункт в выпадающем меню

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

Новая закладка в свойствах папки

Новая закладка в свойствах папки

Программа корректно создаёт и правильно удаляет ссылки. Проверено. Скачать её можно по этой ссылке.

Зачем еще мне нужны символические ссылки

Настройка битрикса это не единственное, для чего мне пригодились символические ссылки.

На некоторых сайтах есть разделы с документами. Этих документов очень много и они часто обновляются. При этом заливать их нужно все разом.

Делать это средствами CMS очень долго. Проще зайти через SFTP и залить всё руками. Вот тут и пригождаются символические ссылки.

Я создал ссылки на часто обновляемые папки в стартовой директории файлового менеджера Bitvice SFTP. Теперь, заходя в файловый менеджер для загрузки файлов, я могу сразу же приступить к загрузке документов в любую требуемую папку не затрачивая драгоценное время на переход по директориям сервера.

Это очень ускоряет работу.

logo