Различия
┌───────────────┬──────────┬──────────┬──────┬──── ───────┬─────┐ │ │ Абсолютный │ Относительный │ Файл │ Каталог │ UNC │ ├───────────────┼──────────┼──────────┼──────┼──── ───────┼─────┤ │ Символическая ссылка │ Да │ Да │ Да │ Да │ Да │ │ перекресток │ да │ - │ - │ да │ - │ └───────────────┴──────────┴──────────┴──────┴──── ───────┴─────┘
сценарий
Давайте предположим, что мы создаем точку повторной обработки для создания перенаправления C:\SomeDir => D:\SomeDir
Поскольку для этого сценария требуются только локальные абсолютные пути, будет работать либо соединение, либо символическая ссылка. Есть ли в этой ситуации какое-либо преимущество от использования одного или другого?
Предположим Windows 7 для ОС, не учитывая обратную совместимость. (До Vista, символические ссылки изначально не поддерживаются, хотя существует сторонний драйвер, который обеспечивает поддержку символических ссылок в Windows XP.)
Обновить
Я нашел другое отличие.
- Символическая ссылка - разрешения ссылки влияют только на операции удаления / переименования на самой ссылке, доступ на чтение / запись (к цели) регулируется разрешениями цели
- Junction - разрешения Junction влияют на перечисление, отзыв разрешений на соединении будет запрещать перечисление файлов через этот переход, даже если целевая папка имеет более разрешающие списки ACL.
Разрешения делают его интересным, так как символические ссылки могут позволить устаревшим приложениям получать доступ к файлам конфигурации в областях с ограниченным доступом UAC (например, %ProgramFiles%
) без изменения существующих разрешений доступа, сохраняя файлы в неограниченном месте и создавая символические ссылки в ограниченном каталоге.
Обновление 2
Windows 8.1 будет разрешать символические ссылки на каталоги при переходе по ним через текстовое поле в Save As...
диалоговом окне. Соединения не расширены.
mount.cifs
, тогда символические ссылки будут отображаться как таковые, тогда как переходы будут рассматриваться как обычные каталоги - вероятно, из-за точка, где происходит разрешение ввода-вывода, то есть локально на хосте Windows.