68

Windows XP и более поздние версии поддерживают символические ссылки. Тем не менее, Windows продолжает использовать ярлыки файлов (которые по существу хранят местоположение связанного файла в виде текста). Зачем?

2 ответа2

106

Я полагаю, по ряду причин

  1. Вы можете хранить разные уровни совместимости для нескольких разных ярлыков для одного и того же EXE-файла, поскольку они интерпретируются оболочкой, а не файловой системой.
  2. Определенные ссылки быстрого доступа на самом деле не существуют в файловой системе. Некоторые из них являются просто ссылками на GUID или специальными строками, интерпретируемыми оболочкой.
  3. Вы не можете включить переключатели в символическую ссылку. Конечно, вы можете указать на EXE, но не можете указать этому EXE какие-либо дальнейшие аргументы.
  4. Вы не можете выбрать значок для символической ссылки.
  5. Вы не можете выбрать каталог для работы в символической ссылке.
  6. Файлы ярлыков не обязательно должны указывать на файлы, они могут быть гиперссылками или ссылками протокола (в случае a.Файл URL).
  7. Файлы LNK могут существовать в любой файловой системе. Символьные ссылки обрабатываются самой файловой системой, в случае Windows, NTFS.
  8. Там нет реальной необходимости заменить их. Они работают, они крошечные, их можно увеличить в будущем, если когда-нибудь потребуется добавить к ним больше функциональности, чем указано выше.
  9. Административные права требуются для создания символической ссылки (по уважительной причине - в противном случае перенаправление невинных файлов на вредоносные может быть выполнено без особых усилий)

Там будут больше причин , чем это, но я думаю , что это достаточно , чтобы вы начали :) - Там есть ссылка предоставлена @grawity здесь , что даст некоторое дальнейшее чтение на часть этой темы.

6

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

Ярлыки невосприимчивы к большинству форм поломок, так как они отслеживают свои цели независимо от пути. Это делает их более удобными для пользователя. Они специально разработаны для потребителей с подходом «просто делай то, что я имею в виду, и не беспокойся о деталях».

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .