В контексте NTFS:
MKLINK [[/D] | [/H] | [/J]] Link Target
/D
Создает каталог символическую ссылку. По умолчанию это символическая ссылка файла.
/H
Создает жесткую ссылку вместо символической ссылки.
/J
Создает соединение каталогов.
Link
указывает имя новой символической ссылки.
Target
указывает путь (относительный или абсолютный), на который ссылается новая ссылка.
Разве объединение каталогов - это не то же самое, что символьная ссылка на каталог ?
Какая разница между
mklink /D f1 f2
аmklink /J f1 f2
?Поскольку «каталог» на самом деле является просто файлом , в чем будет разница между символической ссылкой каталога и символической ссылкой файла?
windows
filesystems
ntfs
symbolic-link
Pacerier
источник
источник
Ответы:
Соединение определенно не то же самое, что символьная ссылка на каталог, хотя они ведут себя аналогично. Основное отличие состоит в том, что, если вы смотрите на удаленный сервер, соединения обрабатываются на сервере, а символические ссылки каталога обрабатываются на клиенте . Также см. Комментарий Мэтью о том, что это означает, что символические ссылки в локальной файловой системе могут указывать на удаленные файловые системы.
Предположим, что на машине с именем Алиса вы должны были поместить точку соединения
c:\myjp
и символическую ссылку каталогаc:\mysymlink
, обе указатели наc:\targetfolder
. Пока вы используете Алису, вы не заметите большой разницы между ними. Но если вы используете другую машину с именем Bob, то точка соединения\\Alice\c$\myjp
будет указывать на\\Alice\c$\targetfolder
но символическая ссылка
\\Alice\c$\mysymlink
будет указывать на\\Bob\c$\targetfolder
(Предостережение: по умолчанию система не следует символическим ссылкам на удаленных томах, поэтому в большинстве случаев второй пример фактически приводит либо к «Файлу не найден», либо к «Символической ссылке не может следовать, потому что ее тип отключен». )
Разница между символической ссылкой каталога и символической ссылкой файла заключается просто в том, что один представляет каталог, а другой - файл. Поскольку целевая ссылка не должна существовать при создании ссылки, файловая система должна знать, сообщать ли приложениям, что это каталог или нет.
Следует также отметить, что создание символической ссылки требует специальных привилегий (по умолчанию доступно только для процессов с повышенными правами), в то время как создание соединения требует только доступа к файловой системе.
источник
C:\testlink
(которая указываетC:\test
на мой компьютер), а кто-то удаленно обращается к моему компьютеру и нажимает наC:\testlink
нее, она разрешаетсяC:\test
на компьютере HIS, тогда как, если я создаю соединение каталогаC:\testlink
(которое указывает наC:\test
на моем компьютере), и кто-то удаленного доступа к моему компьютеру и щелкаетC:\testlink
) это приведет его кC:\test
на моем компьютере? Или я неправильно понял?C:\MyNetworkShare
которое также указывает\\Alice\Share
?Сложные разговоры вредит мозгу - мне нравятся графики:
Предположим, что any
MyLink
- это символическая ссылка, а anyMyJunc
- это соединение, указывающее наTarget as created
.например
mklink /D MyLink C:\T_Dir
для создания символической ссылки на целевой каталогmklink /J MyJunc C:\T_Dir
для создания соединения каталога с целевым каталогомГде синтаксис
mklink [/J,/D] [link path] [target path]
как набран на локальной машинеОшибка * 1 - Если вы разблокировали доступ к удаленным символическим ссылкам на локальном компьютере, это сработало бы ... но только на локальном компьютере, на котором он разблокирован
источник
d:\_tmp\data
. Создать ссылку следующим образом:d:\_tmp>mklink /d data-link data
. Удаленный пользователь имеет полный доступ коd:\_tmp
всем его подпапкам, НО он все равно не сможет открытьd:\_tmp\data-link
.Complex talk hurts brain -- I like charts
Мне нравится это предложение и таблица тоже.Символьные ссылки обладают большей функциональностью, в то время как соединения, по-видимому, являются устаревшей функцией из-за их ограничений, но последствия этих ограничений для безопасности заключаются именно в том, почему соединение может быть предпочтительнее символической ссылки. Удаленный таргетинг делает символические ссылки более функциональными, но также повышает их профиль безопасности, в то время как соединения могут считаться более безопасными, поскольку они ограничены локальными путями . Итак, если вам нужна локальная ссылка и вы можете жить по абсолютному пути, вам, вероятно, лучше с перекрестком; в противном случае рассмотрите символическую ссылку для его добавленных способностей.
** Заявление о разнице в скорости / сложности исходит из непроверенного утверждения в статье Википедии о точках повторной обработки NTFS (хорошее чтение). *
Другие сравнения ссылок NTFS
Вот некоторые другие сравнения по этой теме, но они могут вводить в заблуждение при рассмотрении пересечений, потому что они не перечисляют преимущества, которые я перечислю выше.
Взято отсюда (хорошее вступительное чтение)
Со страницы SS64 на MKLink
Отзывы о терминологии
Соединения - это символические ссылки
Соединения и символические ссылки на самом деле делают одно и то же (точки повторного анализа), за исключением вышеупомянутых различий в том, как они обрабатываются. Фактически, технически, Junction - это символическая ссылка, и иногда документация может назвать Junction символической ссылкой, как в данном случае . Так что это просто кое-что, чтобы знать о терминологии.
NTFS
Несмотря на то, что OP указывает это, стоит отметить, что «символическая ссылка» является очень общим термином, который не является специфическим для NTFS. Таким образом, чтобы быть точным, это сравнение касается соединений NTFS и символических ссылок NTFS.
источник