Un lien symbolique / logiciel est-il similaire à un raccourci / alias sur un bureau?

19

Il me semble que l'idée de base des liens logiciels / symboliques par rapport aux raccourcis (sur un PC) ou aux alias (sur un Mac) est la même chose. Suis-je loin? Sont-ils similaires?

Marty
la source

Réponses:

14

L'idée de base est à peu près la même. Un lien symbolique est un fichier spécial qui contient un chemin (relatif ou absolu) vers un autre objet du système de fichiers. Sous UNIX / Linux, le système d'exploitation lui-même traite le lien symbolique, se résolvant à l'objet réel de manière transparente.

Sur les Mac, un alias semble être une construction spéciale du Finder pouvant référencer des objets distants ainsi que des objets locaux, mais le Finder résout la référence, pas le système d'exploitation. MacOS X possède également des liens symboliques, mais ils sont distincts des alias.

La grande différence est entre un raccourci Windows et un lien symbolique. Un raccourci Windows ne peut pas facilement remplacer un programme car Windows doit toujours avoir ces extensions de fichiers embêtants et un fichier "lnk" n'est pas un exécutable quand il s'agit de Windows. Dans l'interface graphique, cela fonctionne, mais du point de vue du serveur, il barfs. Même chose avec un répertoire. Ils sont utiles, mais n'ont pas la puissance et la flexibilité d'un lien symbolique.

Arcege
la source
"Idem avec un répertoire": Voulez-vous dire que l'on ne peut pas cd dans un lien symbolique pointant vers un répertoire?
dash17291
2
Cela signifie que vous ne pouvez pas accéder à un raccourci sur un système Windows car il s'agit d'une construction Windows, pas DOS. Avec UNIX / Linux, c'est une construction de système de fichiers, donc cela fonctionnera n'importe où, y compris la cdcommande - c'est à la commande d'interpréter le point final, pas le système d'exploitation. Par exemple, cdpourrait utiliser un lien symbolique vers un répertoire, mais il échouerait correctement sur un lien symbolique vers un fichier normal.
Arcege
7

Pas vraiment. Il y a une ressemblance, mais seulement jusqu'à un certain point. J'ai connu des gens qui pensaient «ok, les liens symboliques sont comme des raccourcis, mais je ne les comprends pas tout à fait» jusqu'à ce qu'ils disent «oh, en fait les liens symboliques ne sont pas comme des raccourcis, et maintenant je les comprends». Je pense donc que les raccourcis ne sont pas un bon moyen de comprendre les liens symboliques et je recommande de vider votre esprit de la comparaison avec les raccourcis.

Un lien symbolique indique le nom d'un autre fichier. C'est "nom" comme dans le chemin complet, c'est-à-dire en incluant potentiellement une partie du répertoire ainsi que le nom à l'intérieur du répertoire. Le chemin peut être absolu ( /foo/bar) ou relatif ( foo/barou ../barou juste bar); si la cible est donnée par un chemin relatif, elle est interprétée par rapport au répertoire contenant le lien symbolique. Le fichier cible peut ou non exister, et la suppression, le déplacement ou la création du fichier cible n'affectera pas le lien symbolique.

Les opérations qui agissent sur le contenu du fichier agissent sur le fichier cible. Ainsi, lorsque vous lisez ou écrivez dans un fichier via un lien symbolique, ou exécutez un programme via un lien symbolique, c'est comme si vous accédiez au fichier cible. Les opérations qui agissent sur un fichier de l'extérieur, comme renommer ou supprimer, agissent sur le lien symbolique lui-même. Notez que pour l'écriture, cela fait une différence si vous écrasez le fichier existant (qui agira sur la cible) ou supprimez le fichier existant et créez un nouveau fichier (qui laissera la cible intacte et créera un nouveau fichier remplaçant le lien symbolique, sauf si l'application prend soin de suivre le lien (beaucoup le font)).

Gilles 'SO- arrête d'être méchant'
la source
1
Un lien symbolique ne constitue pas toujours un chemin complet: sur mon système Slackware 13.1, /usr/lib/libXv.so est un lien symbolique vers libXv.so.1.0.0. Aucun chemin complet là-bas.
Bruce Ediger