Question Pourquoi les versions ultérieures de Windows continuent-elles à utiliser des fichiers de raccourcis au lieu de liens symboliques?


Windows XP et versions ultérieures prennent en charge les liens symboliques. Pourtant, Windows continue d'utiliser des fichiers de raccourcis (qui stockent essentiellement l'emplacement du fichier lié en tant que texte). Pourquoi?


68
2018-02-02 05:44


origine


Pourquoi les nouvelles versions de Windows (et Office) enregistrent-elles les fichiers texte au format ANSI et non UTF-8? Soit pour créer une incompatibilité et une déraisonnabilité, soit pour prendre en charge des systèmes existants ... - retrography
Windows XP et versions ultérieures prennent en charge les symboles sur certains systèmes de fichiers. Les liens symboliques fonctionnent sur un système de fichiers NTFS sur votre disque dur, mais ne fonctionnent pas s'ils sont copiés sur une clé USB au format FAT 32 normale ou sur un CD-ROM au format UDF. ne connaissent souvent pas le système d'exploitation ou le système de fichiers utilisé par le serveur distant). Les fichiers de raccourcis LNK peuvent être copiés et utilisés avec succès. - GAThrawn
les fenêtres .lnk les fichiers sont plus similaires à Linux .desktop des fichiers que des liens symboliques. - Arturo Torres Sánchez
Les liens symboliques sont délicats sur le plan de la sécurité (problème d’adjoint confus) - CodesInChaos
Alors, avez-vous cessé d'utiliser des signets dans votre navigateur lorsque NTFS est arrivé? Cela peut sembler une comparaison absurde, mais seulement si vous pensez que les raccourcis ne sont que des pointeurs vers des fichiers - ce n’est tout simplement pas le cas. - Luaan


Réponses:


Un certain nombre de raisons, je suppose

  1. Vous pouvez stocker différents niveaux de compatibilité sur plusieurs raccourcis différents vers le même EXE qu'ils sont interprétés par le shell, plutôt que le système de fichiers.
  2. Certains liens de raccourci n'existent pas réellement sur le système de fichiers. Certains d'entre eux ne sont que des références à des GUID ou à des chaînes spéciales interprétées par le shell.
  3. Vous ne pouvez pas inclure de commutateurs dans un lien symbolique. Vous pouvez pointer sur EXE, bien sûr, mais vous ne pouvez pas dire à cet EXE d'autres arguments.
  4. Vous ne pouvez pas choisir une icône pour un lien symbolique.
  5. Vous ne pouvez pas choisir le répertoire à partir duquel travailler dans un lien symbolique.
  6. Les fichiers de raccourcis ne doivent pas seulement pointer vers des fichiers, ils peuvent être des liens hypertexte ou des liens de protocole (dans le cas d'un fichier .URL).
  7. Les fichiers LNK peuvent exister sur n'importe quel système de fichiers. Les liens symboliques sont gérés par le système de fichiers lui-même, dans le cas de Windows, NTFS.
  8. Il n'y a pas vraiment besoin de les remplacer. Ils fonctionnent, ils sont minuscules, ils peuvent être mis à l’échelle à l’avenir si des fonctionnalités supplémentaires devaient être ajoutées à celles énumérées ci-dessus.
  9. Des droits administratifs sont nécessaires pour créer un lien symbolique (pour une bonne raison - sinon, la redirection de fichiers innocents vers des fichiers malveillants peut être exécutée avec très peu de travail)

Il y aura plus de raisons que cela, mais je pense que cela suffit pour vous lancer :) - Il y a un lien fourni par @grawity ici cela donnera des indications supplémentaires sur certaines parties de ce sujet.


106
2018-02-02 05:54



De plus, les raccourcis de fichiers mettent en cache certaines métadonnées sur la cible, et leur interprétation au niveau du shell permet d’obtenir des raccourcis. mis à jour par le shell si la cible a été déplacée, ce qui serait plus difficile avec les liens symboliques. En général, voir Old New Thing à nouveau pour diverses choses intéressantes sur les fonctionnalités de raccourci. - grawity
@grawity Y aurait-il un avantage majeur à ce que ces systèmes soient gérés par le système de fichiers? J'aurais pensé que les fichiers .lnk ont ​​une marge de manœuvre infinie pour des fonctionnalités supplémentaires si nécessaire, tout en conservant une compatibilité ascendante, et ils n'ont pas beaucoup de temps à leur disposition. Déplacer cela dans le système de fichiers serait peut-être un peu trop sophistiqué? Je ne suis en aucun cas un expert du fonctionnement interne des systèmes de fichiers. - Jonno
Certes, le FS lui-même ne serait d'aucune utilité pour la plupart de ces informations - de nombreuses fonctionnalités de .lnk sont réellement spécifiques à l'Explorateur. - grawity
Je voulais juste souligner que les fichiers LNK ne peuvent pas, à ma connaissance, être utilisés pour cibler des URL (hyperliens). Vous pouvez utiliser la même fonctionnalité de création de raccourci dans Windows pour créer un raccourci vers une URL, mais le résultat final est un fichier .URL (qui est du texte brut, essentiellement un fichier INI) et non un fichier .LNK (binaire). - Michael Becker
Ou start http://superuser.com qui choisit le navigateur par défaut, comme le ferait un véritable raccourci vers une URL. Cela dit, vous pourrait faire en sorte que les fichiers .LNK pointent vers les URL. En fin de compte, ils sont des "monikers COM sérialisés", et le système COM peut être étendu avec de nouveaux types de moniker. - MSalters


Un lien symbolique n'est rien d'autre qu'un chemin encapsulé dans une très petite quantité de magie de système de fichiers. Il peut y avoir un certain nombre de façons dont il peut devenir invalide ("cassé"), la plupart impliquant un ou plusieurs fichiers ou répertoires étant renommés. Windows étant un logiciel grand public, vous pouvez avoir un grand nombre de programmes très mal conçus exécutés sur une installation "classique". En conséquence, ce type de casse est beaucoup plus difficile à éviter que sur un serveur où (en théorie) chaque programme qui touche le disque est une quantité connue.

Les raccourcis sont immunisé contre la plupart des formes de rupture car ils suivent leurs cibles indépendamment du chemin. Cela les rend plus conviviaux. Ils sont spécifiquement conçus pour les consommateurs, avec une approche «juste faire ce que je veux dire et ne me dérange pas sur les détails».

Maintenant, vous pouvez utiliser des liens durs pour cela (dans une certaine mesure), mais les liens durs ont un certain nombre de propriétés compliquées ce qui les rend impropres à la consommation. En particulier, les fichiers obtiennent de nouveaux nombres d'inodes trop facilement et certains logiciels de sauvegarde se cassent de manière plutôt spectaculaire lorsqu'ils sont confrontés à des liens physiques. Le premier pourrait (peut-être) être résolu avec tunneling de système de fichiers (ce qui est en fait la façon dont les raccourcis résolvent un problème connexe), mais ce dernier problème est beaucoup plus difficile.

(Je devrais probablement également noter que "résoudre" les liens durs avec le tunneling est décidément non trivial car il ne s’agit pas seulement de rattacher les métadonnées "perdues". Les inodes sont liés au schéma d’allocation de disque, vous ne pouvez donc pas fusionner arbitrairement ou les réaffecter après coup sans avoir un peu de travail puisque les raccourcis utilisent d'autres métadonnées qui peuvent être facilement tunnelées, comme le moment de la création, elles n'ont pas ce problème.)


6
2018-02-04 05:07