MKLINK проти Junction.exe


27

SysInternals має програму junction.exe, яка створює у Windows (Junctions (aka. Reparse points , 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 не передбачали способу створення точок з’єднання з коробки: вам потрібно було отримати копію офіційного набору ресурсів , скористатися стороною програмою або написати її самостійно.

2000 рік

Перша версія junctionінструменту була випущена. Цитуючи офіційний веб-сайт:

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

На жаль, Windows не має інструментів для створення розв’язок - вам потрібно придбати комплект ресурсів Win2K, який постачається разом з linkdпрограмою для створення стиків. Тому я вирішив написати власний інструмент для створення з'єднань: Junction .

Джерело: Junction

2005-06

mklinkКоманда була введена з Windows Vista під час ранньої стадії бета - тестування.

Він був доступний з моменту, коли офіційна версія Beta 1 була відправлена ​​27 липня 2005 року. Спочатку вона могла створювати лише символічні та жорсткі посилання можливість створення точок з’єднання з'явилася пізніше, коли спільнота 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 (12 липня 2006 р.)


Додаткова інформація

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

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

Джерело: Перегляньте бали

У файловій системі NTFS підтримуються три типи файлових посилань: жорсткі посилання, з'єднання та символічні посилання.

Джерело: Жорсткі посилання та з'єднання

Жорсткі посилання

Тверде посилання - це представлення файлової системи файлу, в якому більше одного шляху посилається на один файл у тому ж томі. [...] Будь-які зміни цього файлу миттєво помітні для програм, які отримують доступ до нього через жорсткі посилання, на які посилається. Однак розмір вступу в каталозі та інформація про атрибути оновлюються лише для посилання, через яке було внесено зміни.

Джерело: Жорсткі посилання та з'єднання

З'єднання

З'єднання (його також називають м'яким посиланням) відрізняється від жорсткого посилання тим, що об'єкти зберігання, на які він посилається, є окремими каталогами, а з'єднання може пов'язувати каталоги, розташовані в різних локальних томах на одному комп'ютері.

Джерело: Жорсткі посилання та з'єднання

З'єднувальні точки можуть посилатися лише на каталоги на локальному томі; точки підключення до віддалених акцій не підтримуються.

Джерело: точка з'єднання NTFS

Символічні посилання

Символічне посилання - це об'єкт файлової системи, який вказує на інший об’єкт файлової системи. Об'єкт, на який вказують, називається ціллю.

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

Джерело: Символічні посилання

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

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

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

Джерело: символічне посилання NTFS

Подальше читання


Якщо ви збираєтесь дати набагато детальнішу відповідь, ніж моя, ви можете також згадати, що точки NPFS Reparse - це ще один смак.
парадироїд

(з посиланням на жорсткі посилання, для уточнення)
paradroid

Відповідь чистої якості.
sshow

2
Примітка: Існують символьні посилання "файл" (зроблені звичайними mklinkнезалежно від цільового типу) і є символьні посилання "каталогу" (зроблені mklink /d). Найкраще створити правильний тип посилання для цілі.
kbolino

Мені цікаво, чому junction.exe оновився в 2016 році і чому вони продовжують надсилати його до SysInternals? Вони проти залежності? Подумайте, так, вони є ... Напевно, половина цих інструментів має достатню кількість замінників у Windows. Відмінна детальна відповідь.
Адам Плочер

2

Як уже згадувалося в коментарях, junction.exeвін вийшов перед Vista / Winserver 2008, який прийшов із mklinkкомандою.

Тому використовувати його на Vista далі немає сенсу. Версії Windows, старші за Vista, більше не підтримуються.

Також junction.exeне підтримує символічні посилання NTFS (лише NTFS Junctions ), які були введені разом з Vista / WinServer 2008 та mlinkкомандою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.