2011-10-05 03:28:14 +0000 2011-10-05 03:28:14 +0000
412
412

"directory junction" против "directory symbolic link"?

В контексте NTFS:

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

/D Создает символическую ссылку на каталог. По умолчанию это символическая связь с файлом. /H Создает жесткую связь вместо символической. /J Создает соединение с каталогом. Link указывает имя новой символической связи.
Target указывает путь (относительный или абсолютный), на который ссылается новая ссылка.

  1. Разве пересечение каталога не является тем же самым, что и символическая ссылка каталога?

  2. Поскольку “каталог” на самом деле просто file, какая разница между символической ссылкой на каталог и символической ссылкой на файл?

Ответы (3)

382
382
382
2011-10-05 03:43:56 +0000

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

Предположим, что на машине с именем Алиса (Alice) вы должны поставить точку соединения c:\myjp и символическую связь с каталогами c:\mysymlink, оба указав на c:\targetfolder. Пока вы используете Alice, вы не заметите большой разницы между ними. Но если вы используете другую машину с именем Bob, то точка соединения

\Alice\c$\myjp будет указывать на \Alice\c$\targetfolder

, но символическая ссылка \Alice\c$\mysymlink будет указывать на \Bob\c$\targetfolder

(Caveat: по умолчанию система не отслеживает символические ссылки на удаленных томах, так что в большинстве случаев второй пример на самом деле приведет либо к “File Not Found”, либо к “Символическая ссылка не может быть отслежена, так как ее тип отключен. ”)

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

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

65
65
65
2015-10-22 19:03:16 +0000

Сложный разговор ранит мозг… Мне нравятся диаграммы:

Предположим, что любая MyLink - это символическая связь, а любая MyJunc - это стык, указывающий на Target as created.

, например.

mklink /D MyLink C:\T_Dir для создания символической ссылки на целевую директорию

mklink /J MyJunc C:\T_Dir для создания перекрёстка на целевую директорию

Где синтаксис mklink [/J,/D] [link path] [target path] набран на локальной машине

  • *
link path | target path | When accessed ..
              | | (locally) | (remotely)
              | | |
C:\MyLink | C:\T_Dir | C:\T_Dir | [leads back to local]
C:\MyJunc | C:\T_Dir | C:\T_Dir | [leads to remote]
              | |
\Svr\MyLink | C:\T_Dir | C:\T_Dir | [leads back to local]
\Svr\MyJunc | C:\T_Dir | ***Must create and point local***
              | |
C:\MyLink | \Sv2\T_Dir | \Sv2\T_Dir | Error*1
C:\MyJunc | \Sv2\T_Dir | ***Error - Must point local***
              | |
\Svr\MyLink | \Sv2\T_Dir | Error*1
\Svr\MyJunc | \Sv2\T_Dir | ***Must create link using target device***

Error*1 - Если вы разблокируете доступ к удалённым символическим ссылкам на локальной машине, то это сработает … но только на локальной машине, где он разблокирован

55
55
55
2018-02-02 16:30:06 +0000

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

**Описание разницы в скорости/сложности происходит из непроверенного описания в запись Википедии о точках обзора NTFS (неплохое чтение). *

  • *

Другие сравнения ссылок NTFS

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

Из SS64 страницы MKLink

  • *

Комментарии к терминологии

Соединения - символические ссылки

Соединения и символические ссылки на самом деле делают то же самое (перечислите точки), кроме вышеупомянутых различий в том, как они обрабатываются. Фактически, технически, Пересечение является символической ссылкой, и иногда документация может называть Пересечение символической ссылкой, как здесь . Итак, это просто что-то, что нужно знать относительно терминологии.

NTFS

Даже несмотря на то, что в операционной системе это указано, стоит отметить, что “символическая связь” - это очень общий термин, который не является специфическим для NTFS. Так что, если быть точным, то это сравнение относится к NTFS Junctions vs. NTFS Symbolic Links.

Похожие вопросы

3
19
10
28
10