MKLINK против Junction.exe


27

У SysInternals есть программа junction.exe, которая создает в Windows соединения (aka. Точки повторной обработки , aka. Symlinks).

Тем не менее, Windows также поставляется с mklink, который, кажется, делает то же самое.

Есть ли существенная разница?

Я склонен полагать, что если у SysInternals есть своя собственная программа, они увидят недостаток в стандартной программе MKLink.


5
Junctionбыл опубликован в сентябре 2010 года, согласно связанной странице. Аналогично, страница, на которую ссылается страница, MKLINKимеет дату публикации в апреле 2012 года. Это может показаться убедительным свидетельством того, что она Junctionбыла создана до mklinkдобавления исполняемого файла в Windows. (Я не копал глубже , когда каждый первоначально появился, следовательно комментарий , а не полный ответ Если кто - то хочет , чтобы расширить это и создать правильный ответ, быть моим гостем.)
CVn

К сожалению! Я пропустил это. Похоже, что Junction предшествует mklink. Спасибо.
Абеленки

Ответы:


41

сравнение

junctionПрограмма Марка Руссиновича была разработана с конкретной целью: создать (и удалить) точки соединения. Это поддерживалось годами, но никаких новых функций не было добавлено. Последняя версия была выпущена 4 июля 2016 года.

Что касается mklink, это встроенная команда, доступная в Windows Vista и более поздних версиях. Он может создавать жесткие ссылки, точки соединения и символические ссылки. Специальная функция удаления не предоставляется; Вы можете просто использовать команды delили rd, в зависимости от того, указывает ли ссылка на файл или каталог, соответственно.


Немного истории

До Vista операционные системы Windows не обеспечивали способ создания точек соединения из коробки: вам нужно было либо получить копию официального Resource Kit , либо использовать стороннюю программу, либо написать ее самостоятельно.

2000

Первая версия junctionинструмента была выпущена. Цитирование официального сайта:

Windows 2000 и выше поддерживает символические ссылки на каталоги, где каталог служит символической ссылкой на другой каталог на компьютере. [...]

К сожалению, в Windows нет инструментов для создания соединений - вам нужно приобрести Win2K Resource Kit, который поставляется с linkdпрограммой для создания соединений. Поэтому я решил написать свой собственный инструмент для создания соединений : Junction .

Источник: Junction

2005-06

Команда mklinkбыла введена в Windows Vista на ранней стадии бета-тестирования.

Он был доступен с момента выхода официальной бета-версии 27 июля 2005 года. Первоначально он мог создавать только символические ссылки и жесткие ссылки; возможность создания точек соединения появилась позже с помощью Community Technology Preview (CTP), выпущенного 19 декабря 2005 года.

По-видимому, команда осталась совершенно незамеченной до некоторого времени в 2006 году, когда она была впервые раскрыта. Вот самая ранняя ссылка, которую мне удалось найти:

Теперь вы можете создать символическую ссылку в Windows Vista.

C:\test>ver

Microsoft Windows [Version 6.0.5365]

C:\test>mklink
Creates a symbolic link.

MKLINK [[/D] | [/H] | [/J]] Link Target

[...]

Источник: символическая ссылка в Windows Vista

Также:

Малкольм [MSFT] (эксперт): В
: Есть ли действительно простой способ создать символическую ссылку?
A: Откройте CMD и введите «mklink». Этот инструмент позволит вам создавать переходы, жесткие ссылки и символические ссылки.

Источник: NTFS Beta Chat Transcript (12 июля 2006 г.)


Дополнительная информация

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

Например, точки повторной обработки используются для реализации ссылок файловой системы NTFS и сервера удаленного хранения Microsoft (RSS).

Источник: Reparse Points

В файловой системе NTFS поддерживаются три типа файловых ссылок: жесткие ссылки, соединения и символические ссылки.

Источник: Жесткие ссылки и соединения

Жесткие ссылки

Жесткая ссылка - это представление файловой системы файла, по которому более одного пути ссылаются на один файл в одном и том же томе. [...] Любые изменения в этом файле сразу же видны приложениям, которые обращаются к нему по жестким ссылкам на него. Однако размер записи каталога и информация об атрибутах обновляются только для ссылки, по которой было внесено изменение.

Источник: Жесткие ссылки и соединения

Развязки

Соединение (также называемое «мягкой связью») отличается от жесткого соединения тем, что объекты хранения, на которые оно ссылается, являются отдельными каталогами, и соединение может связывать каталоги, расположенные на разных локальных томах на одном компьютере.

Источник: Жесткие ссылки и соединения

Точки соединения могут связываться только с каталогами на локальном томе; точки соединения с удаленными общими ресурсами не поддерживаются.

Источник: точка соединения NTFS

Символьные ссылки

Символическая ссылка - это объект файловой системы, который указывает на другой объект файловой системы. Указываемый объект называется целью.

Символические ссылки прозрачны для пользователей; ссылки отображаются в виде обычных файлов или каталогов и могут обрабатываться пользователем или приложением точно таким же образом.

Источник: Символические ссылки

[Символические ссылки] были введены с изменениями, внесенными в файловую систему NTFS в Windows Vista , но доступными через драйверы фильтров для Windows XP .

В отличие от точки соединения NTFS (доступно с Windows 2000), символическая ссылка также может указывать на путь к файлу или удаленной сети SMB . В то время как точки соединения NTFS поддерживают только абсолютные пути на локальных дисках, символические ссылки NTFS позволяют связывать, используя относительные пути.

Параметры безопасности по умолчанию в Windows Vista / Windows 7 запрещают администраторам без прав доступа и всем пользователям, не имеющим прав администратора, создавать символические ссылки.

Источник: символическая ссылка NTFS

дальнейшее чтение


Если вы собираетесь дать гораздо более подробный ответ, чем мой, вы можете также упомянуть, что NTFS Reparse Points - еще один вариант .
paradroid

(со ссылкой на Жесткие ссылки, чтобы уточнить)
paradroid

Чисто качественный ответ.
шоу

2
NB: есть символические ссылки «file» (сделанные обычным mklinkнезависимо от типа цели), и есть символические ссылки «directory» (сделанные mklink /d). Лучше всего создать правильный тип ссылки для цели.
Кболино

Мне любопытно, почему junction.exe был обновлен в 2016 году и почему они продолжают поставлять его вместе с SysInternals? Они против вымогательства? Если подумать, да, они ... Вероятно, половина из этих инструментов имеет достаточные замены в Windows. Отличный подробный ответ.
Адам Плохер

2

Как уже упоминалось в комментариях, junction.exeвышел до Vista / Winserver 2008, который шел вместе с mklinkкомандой.

Поэтому нет смысла использовать его в Vista. Версии Windows, более старые, чем Vista, больше не поддерживаются.

Кроме того, junction.exeне поддерживает символические ссылки NTFS (только переходы NTFS ), которые были представлены в Vista / WinServer 2008 и этой mlinkкоманде.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.