Dlaczego nowsze wersje systemu Windows nadal używają plików skrótów zamiast dowiązań symbolicznych?


68

Windows XP i nowsze wersje obsługują dowiązania symboliczne. Jednak system Windows nadal korzysta z plików skrótów (które zasadniczo przechowują lokalizację połączonego pliku jako tekst). Dlaczego?


25
Dlaczego nowe wersje systemu Windows (i pakietu Office) zapisują pliki tekstowe w formacie ANSI, a nie UTF-8? Albo w celu popełnienia niezgodności i nieuzasadnienia, albo w celu wspierania starszych systemów ...
retrografia

9
Windows XP i nowsze wersje obsługują symbolikę w niektórych systemach plików. Dowiązania symboliczne działają w systemie plików NTFS na dysku twardym, ale nie działają, jeśli są kopiowane na normalną pamięć USB w formacie FAT 32 lub na dysk CD-ROM w formacie UDF i mogą nie działać, jeśli są kopiowane na serwer sieciowy często nie znają systemu operacyjnego lub systemu plików używanego przez zdalny serwer). Pliki skrótów LNK można z powodzeniem kopiować i działać we wszystkich tych plikach.
GAThrawn

12
.lnkPliki systemu Windows są bardziej podobne do .desktopplików systemu Linux niż do dowiązań symbolicznych.
Arturo Torres Sánchez

3
Symlinks są podchwytliwe pod względem bezpieczeństwa (zdezorientowany problem zastępcy)
CodesInChaos

2
Czy przestałeś używać zakładek w przeglądarce, kiedy pojawił się NTFS? Może to zabrzmieć jak absurdalne porównanie, ale tylko jeśli uważasz, że skróty to nic innego jak wskaźniki do plików - po prostu tak nie jest.
Luaan

Odpowiedzi:


106

Chyba z wielu powodów

  1. Możesz przechowywać różne poziomy kompatybilności z kilkoma różnymi skrótami do tego samego pliku EXE, ponieważ są one interpretowane przez powłokę, a nie przez system plików.
  2. Niektóre łącza skrótów w rzeczywistości nie istnieją w systemie plików. Niektóre z nich są po prostu odniesieniami do GUID lub specjalnych ciągów interpretowanych przez powłokę.
  3. Nie można włączać przełączników w dowiązaniu symbolicznym. Oczywiście możesz wskazać plik EXE, ale nie możesz podać mu żadnych dalszych argumentów.
  4. Nie możesz wybrać ikony dla dowiązania symbolicznego.
  5. W dowiązaniu symbolicznym nie możesz wybrać katalogu, z którego chcesz pracować.
  6. Pliki skrótów nie muszą tylko wskazywać plików, mogą to być hiperłącza lub łącza protokołu (w przypadku pliku .URL).
  7. Pliki LNK mogą istnieć w dowolnym systemie plików. Dowiązania symboliczne są obsługiwane przez sam system plików, w przypadku Windows, NTFS.
  8. Nie ma potrzeby ich zastępować. Działają, są niewielkie, można je w przyszłości zwiększyć, jeśli kiedykolwiek będzie potrzeba dodania do nich większej liczby funkcji niż wymienione powyżej.
  9. Do utworzenia dowiązania symbolicznego wymagane są uprawnienia administracyjne (Z dobrego powodu - w przeciwnym razie przekierowanie niewinnych plików do złośliwych plików może być wykonane przy bardzo niewielkiej pracy)

Powodów będzie więcej niż to, ale myślę, że to wystarczy, aby zacząć :) - Link tutaj zapewnia @grawity , który pozwoli na dalsze czytanie części tego tematu.


2
Ponadto skróty plików buforują niektóre metadane dotyczące celu, a interpretacja na poziomie powłoki umożliwia aktualizację skrótów przez powłokę, jeśli cel został przeniesiony, co byłoby trudniejsze w przypadku dowiązań symbolicznych. Ogólnie rzecz biorąc, ponownie zapoznaj się ze Starą Nową Rzeczą, aby uzyskać różne ciekawe rzeczy na temat funkcji skrótów.
grawitacja

5
@grawity Czy przeniesienie ich do systemu plików byłoby jednak korzystne? Sądziłbym, że pliki .lnk mają nieskończone możliwości rozbudowy w razie potrzeby w celu dalszej funkcjonalności, przy jednoczesnym zachowaniu kompatybilności wstecznej i nie mają na to dużego obciążenia. Być może przeniesienie tego do systemu plików byłoby trochę zbyt skomplikowane? Jednak nie jestem ekspertem od wewnętrznych mechanizmów systemów plików.
Jonno

3
To prawda, że ​​sam FS nie przydałby się do większości tych informacji - wiele funkcji .lnk jest naprawdę specyficznych dla Eksploratora, więc przechowywanie wszystkiego jako punktu ponownej analizy zamiast pliku byłoby przesadą.
grawitacja

3
Chciałem tylko zaznaczyć, że pliki LNK, o ile mi wiadomo, nie mogą być używane do kierowania adresów URL (hiperłączy). Możesz użyć tego samego narzędzia do tworzenia skrótów w systemie Windows, aby utworzyć skrót do adresu URL, ale wynikiem końcowym jest plik .URL (który jest zwykłym tekstem, zasadniczo plikiem INI), a nie plik .LNK (który jest binarny).
Michael Becker

3
Lub start http://superuser.comktóry wybiera domyślną przeglądarkę, tak jak zrobiłby to prawdziwy skrót do adresu URL. Mimo to, mógł uczynić pliki .lnk wskazywać URL. W końcu są to „serializowane monikery COM”, a system COM można rozszerzyć o nowe typy monikerów.
MSalters

6

Dowiązanie symboliczne to nic innego jak ścieżka zamknięta w bardzo małej ilości magii systemu plików. Istnieje wiele sposobów, w jakie może stać się nieważny („uszkodzony”), z których większość wymaga zmiany nazwy jednego lub więcej plików lub katalogów. Ponieważ system Windows jest oprogramowaniem konsumenckim, może istnieć wiele bardzo źle zaprojektowanych programów działających w „typowej” instalacji. W rezultacie tego rodzaju uszkodzenia jest o wiele trudniejsze do uniknięcia niż na serwerze, na którym (teoretycznie) każdy program, który dotyka dysku, jest znaną wielkością.

Skróty są odporne na większość form złamania, ponieważ śledzą swoje cele niezależnie od ścieżki. Dzięki temu są bardziej przyjazne dla użytkownika. Są one specjalnie zaprojektowane dla konsumentów, z podejściem „po prostu rób, co mam na myśli i nie zawracaj mi głowy szczegółami”.

Teraz możesz do tego użyć twardych linków (do pewnego stopnia), ale twarde linki mają wiele skomplikowanych właściwości, które sprawiają, że nie nadają się do użytku konsumenckiego. W szczególności pliki otrzymują nowe numery i-węzłów zbyt łatwo, a niektóre programy do tworzenia kopii zapasowych psują się dość spektakularnie w przypadku twardych łączy. Ten pierwszy można (być może) rozwiązać za pomocą tunelowania systemu plików (co w rzeczywistości jest sposobem, w jaki skróty rozwiązują powiązany problem), ale ten drugi jest znacznie trudniejszym problemem.

(Prawdopodobnie powinienem również zauważyć, że „rozwiązywanie” twardych łączy za pomocą tunelowania jest zdecydowanie niepraktyczne, ponieważ nie chodzi tylko o ponowne dołączanie metadanych, które „zostały zgubione”. I-węzły są powiązane w schemacie alokacji dysku, więc nie można po prostu arbitralnie scalić lub ponownie przypisaj je po fakcie bez odrobiny pracy nóg. Ponieważ skróty używają innych metadanych, które można łatwo tunelować, takich jak czas tworzenia, nie mają tego problemu).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.