Представьте себе сити стимпанк-мегаполиса, где каждая улочка ведёт к своему цеху, но между ними нет ни одной прямой дороги — только запутанные переулки. Чтобы добраться от склада угля к паровому котлу, курьеру приходится делать семь крюков. Знакомо? Именно так выглядит файловая система Windows, когда приложение ждёт файл по адресу C:\App\data\config.ini, а файл физически лежит на втором диске в D:\Shared\configs\config.ini. И вот тут на сцену выходит mklink — ваш личный инженер-мостостроитель, который прокладывает латунные мосты-ссылки между каталогами и файлами, не двигая ни единой шестерёнки на диске.
Команда mklink появилась в Windows Vista и с тех пор остаётся главным инструментом сисадмина для создания символических ссылок (symlinks), жёстких ссылок (hardlinks) и соединений (junctions). Если вы думаете, что это «просто ярлык», — забудьте. Ярлык — это бумажка с адресом, которую нужно открыть. Ссылка, созданная через mklink, — это настоящий паровой клапан: приложение дёргает за ручку, и пар идёт по трубам, даже не подозревая, что источник находится в другом машинном отделении.
Особенно полезна mklink тем, кто работает с Docker, WSL, разработкой под Node.js или просто наводит порядок на захламлённом диске. Она позволяет «обмануть» старые программы, которые не умеют работать с сетевыми путями, и перенести тяжёлые папки (например, AppData или базы 1С) на SSD, не ломая структуру. Давайте разберём этот инструмент по винтикам.
СИНТАКСИС
mklink [[/D] [/H] | [/J]] <ссылка> <цель>ОСНОВНЫЕ ОПЦИИ
| Опция | Описание | Пример |
|---|---|---|
| (без флагов) | Создаёт символическую ссылку на файл | mklink C:\link.txt D:\real.txt |
/D | Создаёт символическую ссылку на каталог | mklink /D C:\link D:\folder |
/H | Создаёт жёсткую ссылку на файл (работает только в пределах одного тома) | mklink /H C:\hard.txt D:\real.txt |
/J | Создаёт соединение (junction) — аналог /D, но без прав администратора и работает с каталогами | mklink /J C:\junction D:\folder |
/? | Выводит справку по команде | mklink /? |

ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
Перенос тяжёлой папки на SSD без потери пути
Допустим, ваша программа упорно пишет данные в C:\App\Data, а SSD у вас только на 120 ГБ. Переносим папку на HDD и создаём junction:
robocopy C:\App\Data D:\BigHDD\AppData /E /MOVE
mklink /J C:\App\Data D:\BigHDD\AppDataПрограмма продолжает думать, что работает с C:\App\Data, а физически данные льются на большой диск. Магия латуни!
Символическая ссылка на конфигурационный файл
У вас есть один nginx.conf, который должен быть доступен и в C:\nginx\conf\, и в D:\backup\configs\. Вместо копирования создаём symlink:
mklink D:\backup\configs\nginx.conf C:\nginx\conf\nginx.confТеперь редактируете в одном месте — изменения мгновенно видны в другом. Никаких «а какую версию я сегодня правил?»
Жёсткая ссылка для версионирования
Жёсткие ссылки (/H) — это когда два файла физически занимают одно место на диске. Полезно для бэкапов:
mklink /H D:\backup\database_v1.db C:\db\live.dbУдаляете live.db — database_v1.db остаётся жив, потому что жёсткая ссылка хранит свой MFT-запись, а не путь. Это как паровой аккумулятор: даже если котёл разобрали, энергия в маховике сохраняется.

💡 Совет
По умолчанию создание символических ссылок (mklink без флагов и /D) требует прав администратора. Если вы устали каждый раз запускать CMD от имени Администратора, включите в Windows «Режим разработчика» (Settings → Update & Security → For Developers). После этого symlink’и сможет создавать кто угодно — как если бы вы сняли замок с главного парового распределителя.
⚡ Важно
/D против /J — в чём разница?
Оба флага создают ссылки на каталоги, но работают по-разному. /D (symlink) — это «настоящая» ссылка, которая может указывать на сетевой путь (\\server\share), но требует прав администратора. /J (junction) — это наследие Windows 2000, работает только локально, но не требует привилегий. Если сомневаетесь — берите /J: он надёжнее, как чугунная труба. Сетевой путь нужен? Тогда /D.
⚡ Важно
mklink /H создаёт ссылку на уровне файловой системы NTFS, поэтому цель и ссылка должны находиться на одном томе. Попытка сделать mklink /H C:\link.txt D:\real.txt закончится ошибкой. Это как пытаться соединить паровую машину Лондона с фабрикой в Манчестере одной трубой — физика не позволит.
⚙️ Машинное отделение ROADIT благодарит за прочтение.
Больше команд, шпаргалок и обзоров — на roadit.ru и в нашем Телеграф-канале.
📋 Все команды