
Windows XP и более поздние версии поддерживают символические ссылки. Тем не менее, Windows продолжает использовать файлы ярлыков (которые по сути хранят местоположение связанного файла в виде текста). Почему?
решение1
Я полагаю, есть ряд причин.
- Вы можете сохранять различные уровни совместимости для нескольких различных ярлыков одного и того же EXE-файла, поскольку они интерпретируются оболочкой, а не файловой системой.
- Некоторые ссылки на ярлыки фактически не существуют в файловой системе. Некоторые из них являются просто ссылками на GUID или специальные строки, интерпретируемые оболочкой.
- Вы не можете включать переключатели в символическую ссылку. Вы можете указать на EXE, конечно, но вы не можете сообщить этому EXE никаких дополнительных аргументов.
- Выбрать значок для символической ссылки невозможно.
- В символической ссылке нельзя выбрать, с каким каталогом работать.
- Файлы ярлыков не обязательно должны указывать на файлы, они могут быть гиперссылками или ссылками протоколов (в случае файла .URL).
- Файлы LNK могут существовать в любой файловой системе. Символические ссылки обрабатываются самой файловой системой, в случае Windows — NTFS.
- Нет никакой реальной необходимости их заменять. Они работают, они крошечные, их можно масштабировать в будущем, если когда-нибудь возникнет необходимость добавить к ним больше функций, чем перечислено выше.
- Для создания символической ссылки требуются права администратора (и на то есть веская причина — в противном случае перенаправление невинных файлов на вредоносные можно выполнить с минимальными усилиями).
Причин может быть и больше, но я думаю, что для начала этого достаточно :) - Вот ссылка, предоставленная @grawityздеськоторые дадут дополнительную информацию по некоторым частям этой темы.
решение2
Символическая ссылка — это не более чем путь, завернутый в очень небольшое количество магии файловой системы. Существует множество способов, которыми она может стать недействительной («сломанной»), большинство из которых связаны с переименованием одного или нескольких файлов или каталогов. Поскольку Windows — это потребительское программное обеспечение, у вас может быть большое количество очень плохо спроектированных программ, работающих на «типичной» установке. В результате такого рода поломку гораздо сложнее избежать, чем на сервере, где (теоретически) каждая программа, которая касается диска, является известным количеством.
Ярлыки естьневосприимчив к большинству видов поломокпоскольку они отслеживают свои цели независимо от пути. Это делает их более удобными для пользователя. Они специально разработаны для потребителей, с подходом «просто делай то, что я имею в виду, и не беспокой меня подробностями».
Конечно, для этого можно использовать жесткие ссылки (в некоторой степени), но у жестких ссылок есть ряд недостатков.сложные свойствачто делает их непригодными для использования потребителями. В частности, файлы получают новые номера inode слишком легко, а некоторые программы резервного копирования довольно эффектно ломаются при столкновении с жесткими ссылками. Первое (возможно) можно решить с помощьютуннелирование файловой системы(Именно так ярлыки и решают похожую проблему), но последняя проблема гораздо сложнее.
(Я, вероятно, должен также отметить, что «решение» жестких ссылок с помощью туннелирования определенно нетривиально, поскольку это не просто вопрос повторного присоединения метаданных, которые «затерялись». Иноды привязаны к схеме распределения диска, поэтому вы не можете просто произвольно объединить или переназначить их постфактум, не приложив изрядных усилий. Поскольку ярлыки используют другие метаданные, которые можно легко туннелировать, например, время создания, у них этой проблемы нет.)
решение3
Я понимаю, что это старый вопрос, но нас по-прежнему беспокоит то, что Проводник Windows отображает ярлыки и символические ссылки таким образом, что они практически неразличимы и вводят в заблуждение.
В представлениях Проводника, отображающих значки, оба имеют небольшую стрелку, направленную вверх-вправо, в квадрате, прикрепленном к нижнему левому углу, поэтому здесь они представлены неразличимо.
В древовидном представлении проводника символические ссылки (для каталогов) отображаются как узлы, а ярлыки не отображаются.
Щелчок правой кнопкой мыши > диалоговое окно Свойства — это путаница. Для Symlinks в этом диалоговом окне не упоминается ни "ссылка", ни "Symlink", и на самом деле диалоговое окно отображает вкладку "Ярлык" с информацией о типе цели, местоположении цели и фактическом пути цели. Есть поле Начать в (серое и не применяется к SymLink).
Между тем, для настоящих Ярлыков на вкладке Общие отображается Ярлык "Тип файла" (.lnk). А в диалоговом окне отсутствует вкладка Общий доступ (для каталогов).
Так что если все это оставляет вас в неведении относительно того, что есть что, вам придется прибегнуть к командному окну, в котором команда dir четко идентифицирует символьные ссылки с помощью «» в столбце типа, в то время как ярлыки отображаются как обычные файлы с именем файла, указанным с расширением «.lnk».
Конечно, проблема уже в том, что расширение ярлыка представляет собой сокращение от «link», хотя на самом деле это не ссылки.
Короче говоря, Проводник Windows мог бы гораздо лучше справляться с задачей четкого определения и разграничения этих двух довольно разных вещей, и, безусловно, ему следует прекратить использовать для обозначения того или иного понятия термины, которые вводят в заблуждение или являются откровенно неверными.