
Windows XP und höher unterstützen symbolische Links. Dennoch verwendet Windows weiterhin Verknüpfungsdateien (die im Wesentlichen den Speicherort der verknüpften Datei als Text speichern). Warum?
Antwort1
Eine Reihe von Gründen, denke ich
- Sie können verschiedene Kompatibilitätsstufen für mehrere verschiedene Verknüpfungen zur gleichen EXE speichern, da diese von der Shell und nicht vom Dateisystem interpretiert werden.
- Bestimmte Verknüpfungen existieren tatsächlich nicht im Dateisystem. Einige davon sind lediglich Verweise auf GUIDs oder spezielle Zeichenfolgen, die von der Shell interpretiert werden.
- Sie können keine Schalter in einen symbolischen Link einschließen. Sie können natürlich auf die EXE verweisen, aber Sie können dieser EXE keine weiteren Argumente mitteilen.
- Sie können kein Symbol für einen symbolischen Link auswählen.
- Sie können in einem symbolischen Link nicht auswählen, von welchem Verzeichnis aus gearbeitet werden soll.
- Verknüpfungsdateien müssen nicht nur auf Dateien verweisen, es können auch Hyperlinks oder Protokolllinks sein (im Fall einer URL-Datei).
- LNK-Dateien können auf jedem Dateisystem existieren. Symlinks werden vom Dateisystem selbst verwaltet, im Fall von Windows von NTFS.
- Es besteht kein wirklicher Bedarf, sie zu ersetzen. Sie funktionieren, sie sind winzig und können in Zukunft erweitert werden, falls jemals mehr Funktionen hinzugefügt werden müssen als oben aufgeführt.
- Zum Erstellen eines symbolischen Links sind Administratorrechte erforderlich (aus gutem Grund – andernfalls kann die Umleitung harmloser Dateien zu bösartigen Dateien mit sehr geringem Aufwand durchgeführt werden).
Es gibt noch mehr Gründe als diese, aber ich denke, das reicht für den Anfang :) - Es gibt einen Link von @grawityHierDort finden Sie weiterführende Informationen zu Teilen dieses Themas.
Antwort2
Ein Symlink ist nichts anderes als ein Pfad, der mit ein wenig Dateisystemmagie verpackt ist. Es gibt eine Reihe von Möglichkeiten, wie er ungültig werden („kaputtgehen“) kann, die meisten davon beinhalten die Umbenennung einer oder mehrerer Dateien oder Verzeichnisse. Da Windows eine Verbrauchersoftware ist, können auf einer „typischen“ Installation eine große Anzahl sehr schlecht konzipierter Programme ausgeführt werden. Daher ist diese Art von Defekt viel schwerer zu vermeiden als auf einem Server, wo (theoretisch) jedes Programm, das die Festplatte berührt, eine bekannte Größe ist.
Verknüpfungen sindimmun gegen die meisten Arten von Brüchenda sie ihre Ziele unabhängig vom Pfad verfolgen. Das macht sie benutzerfreundlicher. Sie sind speziell für Verbraucher konzipiert und verfolgen den Ansatz „Tu einfach, was ich meine, und belästige mich nicht mit den Details“.
Nun könnte man dafür (bis zu einem gewissen Grad) Hardlinks verwenden, aber Hardlinks haben eine Reihe vonkomplizierte Eigenschaftenwas sie für den Gebrauch durch Verbraucher ungeeignet macht. Insbesondere erhalten Dateien viel zu leicht neue Inode-Nummern und einige Backup-Software bricht ziemlich spektakulär zusammen, wenn sie mit Hardlinks konfrontiert wird. Ersteres könnte (vielleicht) gelöst werden mitDateisystem-Tunneling(so lösen Abkürzungen tatsächlich ein verwandtes Problem), doch letzteres ist ein viel schwierigeres Problem.
(Ich sollte wahrscheinlich auch anmerken, dass das „Auflösen“ von Hardlinks durch Tunneln entschieden nicht trivial ist, da es nicht nur darum geht, „verloren gegangene“ Metadaten wieder anzufügen. Inodes sind an das Festplattenzuordnungsschema gebunden, sodass Sie sie nicht einfach willkürlich zusammenführen oder neu zuweisen können, ohne eine ganze Menge Arbeit zu investieren. Da Verknüpfungen andere Metadaten verwenden, die leicht getunnelt werden können, wie etwa die Erstellungszeit, besteht dieses Problem bei ihnen nicht.)
Antwort3
Mir ist bewusst, dass dies eine alte Frage ist, aber wir werden immer noch davon geplagt, dass der Windows Explorer Verknüpfungen und symbolische Links auf eine Weise anzeigt, die kaum zu unterscheiden und schlichtweg irreführend ist.
In Explorer-Ansichten mit Symbolen verfügen beide über einen kleinen, nach oben rechts zeigenden Pfeil in einem Kästchen in der unteren linken Ecke. Daher sind sie hier nicht zu unterscheiden.
In der Explorer-Struktur werden symbolische Links (für Verzeichnisse) als Knoten angezeigt, Verknüpfungen hingegen nicht.
Der Rechtsklick > Eigenschaften-Dialog ist ein Wirrwarr. Für Symlinks wird in diesem Dialog weder „Link“ noch „Symlink“ erwähnt, und tatsächlich zeigt der Dialog eine Registerkarte „Verknüpfung“ mit Informationen zum Zieltyp, Zielort und tatsächlichen Zielpfad an. Es gibt ein Feld „Starten in“ (ausgegraut und gilt nicht für SymLink).
Bei tatsächlichen Verknüpfungen wird auf der Registerkarte „Allgemein“ die Verknüpfung „Dateityp“ (.lnk) angezeigt. Und im Dialogfeld fehlt die Registerkarte „Freigabe“ (für Verzeichnisse).
Wenn Sie also nicht wissen, was was ist, müssen Sie auf ein Befehlsfenster zurückgreifen, in dem der Befehl „dir“ symbolische Links eindeutig an der Spalte „Typ“ kennzeichnet, während Verknüpfungen als normale Dateien mit der Erweiterung „.lnk“ als Dateinamen angezeigt werden.
Natürlich ist es schon ein Problem, dass die Erweiterung der Verknüpfung eine Abkürzung von „Link“ ist, obwohl es sich überhaupt nicht um Links handelt.
Kurz gesagt: Der Windows Explorer könnte diese beiden recht unterschiedlichen Dinge deutlich besser erkennen und voneinander unterscheiden. Und er sollte auf keinen Fall für das eine oder das andere Begriffe verwenden, die irreführend oder schlichtweg falsch sind.