"Directory junction" vs "directory symbolic link"?

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

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

  1. Разве соединение с каталогом не совпадает со ссылкой на символическую ссылку каталога ?

    В чем разница между mklink /D f1 f2 и mklink /J f1 f2 ?

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

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

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

\\Alice\c$\myjp укажет на \\Alice\c$\targetfolder

Но символическая ссылка

\\Alice\c$\mysymlink укажет на \\Bob\c$\targetfolder

(Предостережение: по умолчанию система не поддерживает символические ссылки на удаленных томах, поэтому в большинстве случаев второй пример фактически приведет к «Файл не найден» или «Символьная ссылка не может быть выполнена, потому что ее тип отключен» ).

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

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

Сложный разговор болит мозгом – мне нравятся графики:

Предположим, что любой 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 *** 

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

  • Извлечение необычных компонентов из Windows, установленных на SSD
  • Windows 7 / Symlinks - Как скопировать Symlink в каталог?
  • Как удалить символическую ссылку?
  • Автоматически сопоставлять файлы каталогов в другой каталог
  • Давайте будем гением компьютера.