Чому пізніші версії Windows продовжують використовувати файли ярликів замість символічних посилань?


68

Windows XP та новіші версії підтримують символічні посилання. Тим не менш, Windows продовжує використовувати файли ярликів (які по суті зберігають розташування пов'язаного файлу як текст). Чому?


25
Чому нові версії Windows (і Office) зберігають текстові файли у форматі ANSI, а не UTF-8? Або для вчинення несумісності та необгрунтованості, або для підтримки застарілих систем ...
ретрографія

9
Windows XP та пізніші файли підтримують символічну функцію в певних файлових системах. Символічні посилання працюють на файловій системі NTFS на вашому жорсткому диску, але не працюють, якщо скопійовано на звичайний USB-накопичувач у форматі FAT 32 або на компакт-диску формату UDF і може не працювати, якщо скопійовано на мережевий сервер (як ви часто не знаю ОС або файлову систему, що використовується віддаленим сервером). Файли ярликів LNK можна скопіювати та працювати з усіма ними.
GAThrawn

12
.lnkФайли Windows більше схожі на .desktopфайли Linux, ніж на посилання.
Артуро Торрес Санчес

3
Символьні посилання складні в безпеці (розгублена проблема депутата)
CodesInChaos

2
Отже, ви перестали використовувати закладки у своєму браузері, коли з'явився NTFS? Це може здатися абсурдним порівнянням, але тільки якщо ви думаєте, що ярлики - це не що інше, як покажчики на файли - це просто не так.
Луань

Відповіді:


106

Гадаю, цілий ряд причин

  1. Ви можете зберігати різні рівні сумісності проти кількох різних ярликів до того ж EXE, як вони інтерпретуються оболонкою, а не файловою системою.
  2. Певні ярликові посилання насправді не існують у файловій системі. Деякі з них - це просто посилання на GUID або спеціальні рядки, інтерпретовані оболонкою.
  3. Ви не можете включати перемикачі в симпосилання. Ви можете вказати на EXE, звичайно, але ви не можете сказати цьому EXE жодних додаткових аргументів.
  4. Ви не можете вибрати піктограму для посилання.
  5. Ви не можете вибрати, з якого каталогу працюватимуть у посиланні.
  6. Файли ярликів не просто повинні вказувати на файли, вони можуть бути гіперпосиланнями або посиланнями на протокол (у випадку .URL-файлу).
  7. Файли LNK можуть існувати в будь-якій файловій системі. Символьні посилання обробляються самою файловою системою, у випадку з Windows, NTFS.
  8. Реально не потрібно їх замінювати. Вони працюють, вони крихітні, їх можна буде збільшити в майбутньому, якщо коли-небудь буде необхідність в додаванні додаткових функціональних можливостей, ніж зазначено вище.
  9. Для створення символьного посилання потрібні адміністративні права (З поважної причини - інакше перенаправлення невинних файлів на шкідливі можна виконати з дуже невеликою кількістю роботи)

Там будуть більше причин , ніж це, але я думаю , що це досить , щоб ви почали :) - Там є посилання надана @grawity тут , що дасть деякий подальше читання на частину цієї теми.


2
Крім того, ярлики файлів кешують певні метадані про ціль, а інтерпретація на рівні оболонки дозволяє ярликам оновити оболонку, якщо ціль переміщена, що буде складніше із посиланнями. Загалом, перегляньте " Стару Нову річ" ще раз про різні цікаві речі про функції швидкого доступу.
grawity

5
@grawity Чи є якась більша користь для переміщення їх до обробки файловою системою? Я б подумав, що .lnk файли мають нескінченну можливість розширити для подальшого функціонування, якщо це потрібно, в той час як все ще зберігають зворотну сумісність, і вони не мають багато накладних витрат на них. Переміщення цього до файлової системи, можливо, було б трохи перероблене, можливо? Однак я аж ніяк не фахівець із внутрішніх функцій файлових систем.
Jonno

3
Правда, сам FS не використовував би більшість цієї інформації - багато функцій .lnk справді специфічні для Explorer, тому зберігати все як точку повторного аналізу, а не файл буде надмірним.
grawity

3
Просто хотів зазначити, що файли LNK, наскільки я знаю, не можна використовувати для націлювання на URL-адреси (гіперпосилання). Ви можете використовувати той самий інструмент створення ярликів у Windows, щоб створити ярлик до URL-адреси, але кінцевим результатом є файл .URL (який є простим текстом, по суті, файлом INI), а не .LNK-файл (який є двійковим).
Майкл Бекер

3
Або start http://superuser.comякий вибирає браузер за замовчуванням, як і справжній ярлик до URL. Однак, ви можете зробити так, щоб файли .LNK вказували на URL-адреси. Врешті-решт, вони є "серіалізованими комірниками COM", і систему COM можна розширити новими типами спостережувачів.
MSalters

6

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

Ярлики незахищені до більшості форм поломки, оскільки вони відстежують цілі незалежно від шляху. Це робить їх більш зручними для користувачів. Вони спеціально розроблені для споживачів з підходом "просто роби те, що я маю на увазі, і не турбуй мене про деталі".

Тепер ви можете використовувати жорсткі посилання для цього (певною мірою), але жорсткі посилання мають ряд складних властивостей, які роблять їх непридатними для використання споживачами. Зокрема, файли отримують нові номери inode занадто легко, а деякі програми резервного копіювання досить ефектно розбиваються, стикаючись із жорсткими посиланнями. Перший (можливо) може бути вирішений за допомогою тунелювання файлової системи (це насправді, як ярлики вирішують пов'язану проблему), але остання є набагато складнішою проблемою.

(Я, мабуть, слід також зазначити, що "вирішення" жорстких зв'язків з тунелюванням, очевидно, нетривіально, оскільки це не лише питання повторного вкладення метаданих, які "загубилися". або перепризначте їх після закінчення факту без належної роботи. Оскільки в ярликах використовуються інші метадані, які можна легко налаштувати, наприклад, час створення, у них не виникає цієї проблеми.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.