52 votes

Les liens en dur sont-ils équivalents aux raccourcis Windows ?

Wikipédia définit un lien dur comme :

une entrée de répertoire qui associe un nom à un fichier sur un système de fichiers. (Un répertoire est lui-même un type de fichier spécial qui contient une liste d'entrées de ce type). Ce terme est utilisé dans les systèmes de fichiers qui permettent de créer plusieurs liens en dur pour un même fichier.

Je me demande si le concept de lien dur est équivalent au concept Windows de Raccourci .

Si les liens en dur ne sont pas équivalents aux raccourcis, quelle est la fonctionnalité de Windows la plus proche des liens en dur ?

114voto

Stewart Points 1385

Non, un lien dur est complètement différent. Un lien souple est plus proche d'un raccourci Windows (bien qu'il y ait des différences importantes, les liens symboliques sont plus proches des raccourcis Windows que les liens durs). Un lien dur est une chose différente dont vous n'aurez pratiquement jamais besoin.

En bref, cette commande permet de créer un lien souple :

ln -s foo bar

Si vous exécutez ensuite ls -l vous verrez :

lrwxrwxrwx 1 terdon terdon 3 Mar 10 15:58 bar -> foo
-rw-r--r-- 2 terdon terdon 0 Mar 10 15:58 foo

En -> signifie que bar est un lien vers foo . Ainsi, l'ouverture bar avec un éditeur de texte par exemple, ouvrira en fait le fichier séparé foo . Toutefois, la suppression de bar supprimera simplement le raccourci, sans affecter le fichier. foo .

Les liens en dur, quant à eux, sont créés avec cette commande :

ln foo bar

Si vous exécutez maintenant ls -l Il n'y a aucune indication d'une quelconque relation entre les dossiers :

-rw-r--r-- 2 terdon terdon 0 Mar 10 15:58 bar
-rw-r--r-- 2 terdon terdon 0 Mar 10 15:58 foo

Mais - et c'est très important - il s'agit en fait de le même fichier . Les fichiers des systèmes de fichiers Unix sont stockés à l'aide de inodes ; un inode est essentiellement la manière dont le système de fichiers associe un nom de fichier à un emplacement particulier sur le disque dur physique. Ainsi, les liens durs sont des fichiers qui pointent vers vers le même inode comme cible. En d'autres termes, il s'agit de todos sont en fait des liens durs pointant vers leurs inodes. L'établissement d'un lien dur vers un fichier crée simplement un nouveau pointeur (fichier) sur le système de fichiers qui pointe vers le même inode. Chaque inode peut avoir plusieurs fichiers pointant vers lui, un seul, ou aucun.

Pour mieux comprendre, utilisez ls -i qui indique l'inode associé à un fichier. Créons un lien souple et un lien dur et voyons ce qui se passe :

ln -s foo SoftLinkToFoo
ln foo HardLinkToFoo

Maintenant, vérifiez leurs inodes :

enter image description here

Comme vous pouvez le voir ci-dessus, les deux foo y HardLinkToFoo ont le même inode (16648029) alors que SoftLinkToFoo en a un différent (16648036).

Que se passe-t-il si nous renommons foo con mv foo bar ?

enter image description here

La couleur rouge indique un lien souple brisé, c'est-à-dire un lien dont la cible ne peut plus être trouvée. En effet, les liens logiciels pointent vers le nom d'un fichier, et non vers son inode. Notez que malgré le changement de nom, l'inode reste le même, donc le lien dur est correct, il fonctionne toujours.

En résumé, les liens durs sont en fait deux manifestations de la même Ce sont des pointeurs vers la même section du disque. Les soft links ne sont que des raccourcis. Pour prendre une analogie avec le monde réel, les liens en dur sont comme deux numéros de téléphone différents pour la même ligne téléphonique et les liens logiciels sont comme deux lignes téléphoniques différentes dans la même maison.

18voto

user5084 Points 211

Il y a une bonne explication de ce que sont les liens doux et les liens durs, mais une chose doit être clarifiée.

Fenêtres raccourcis sont équivalents ou similaires à ni l'un ni l'autre liens souples ni liens durs . Au niveau du système de fichiers, il s'agit simplement de fichiers. C'est le Shell qui comprend leur structure et les interprète comme des liens. Les raccourcis Windows peuvent également pointer vers des objets des espaces de noms Shell qui ne sont pas liés au système de fichiers (imprimantes, éléments du panneau de configuration, dossiers virtuels).

Les raccourcis Windows contiennent, outre le nom de l'objet du système de fichiers, les informations suivantes : PIDL (chemin binaire opaque dans l'espace de noms Shell), description, raccourci clavier, icône, répertoire de travail. Windows ajoute également des identifiants d'objets NTFS si le système de fichiers NTFS est utilisé, afin de réparer les raccourcis cassés.

L'équivalent approximatif d'un raccourci Windows est un .desktop fichier. Voir cette question sur SuperUser : Existe-t-il un équivalent de .lnk sous Linux ?

6voto

Shaakunthala Points 101

Non. Sous Linux, les choses fonctionnent différemment.

Chaque fichier est représenté par un objet appelé "inode". Chaque inode est associé à un numéro (ID).

Comme nous le savons, l'être humain n'est pas doué pour retenir les chiffres, mais les noms. (C'est ainsi que les annuaires téléphoniques ont évolué).

C'est pourquoi le nom de fichier est apparu pour donner à chaque inode un nom lisible par l'homme. Fondamentalement, un lien dur lie un nom de fichier à un inode. Un inode peut avoir plusieurs hardlinks. Si aucun lien dur n'est présent pour un inode particulier, l'espace disque utilisé par l'inode peut être réattribué à de nouveaux fichiers. Cela signifie qu'il doit y avoir au moins un lien dur pour chaque fichier. Le nom de fichier (visualisé comme le nom de fichier/l'icône que vous voyez dans le navigateur de fichiers) est lui-même un lien dur.

Dans Windows, le raccourci est un fichier distinct (fichier *.lnk). Il contient des informations sur le fichier original (notamment le chemin d'accès). Dans la perception Linux, un raccourci Windows serait un autre inode lié en dur à un nom de fichier se terminant par '.lnk'.

2voto

nux Points 34943

Une grande différence, les liens en dur ne peuvent pas être créés pour les dossiers, mais pour les fichiers.

Des raccourcis peuvent être créés pour les dossiers, ce qui vous permet de équivalents .

Votre question devrait porter sur la différence entre lien symbolique ou lien souple y raccourci .

selon ce qui suit :

Un lien symbolique se situe au niveau du système de fichiers, et tout le monde le voit comme le fichier fichier original. Une application n'a besoin d'aucun support particulier pour utiliser un lien symbolique.

Un "raccourci" est un fichier ordinaire qui fait référence au fichier de destination ou au fichier direct. fichier ou répertoire de destination.

Ainsi, lorsque vous cliquez sur un raccourci, votre répertoire est remplacé par le fichier actuel, alors que le lien symbolique fait référence à son emplacement comme s'il s'agissait du fichier actuel. Dans Linux, vous pouvez utiliser le terminal et cd pour les liens symboliques, alors que vous ne pouvez pas cd pour les raccourcis.

Un raccourci Windows et un lanceur Linux (pointant vers un emplacement quelconque) seraient identiques.

2voto

Spook Points 121

Sous Windows, vous pouvez également créer des liens en dur si vous disposez d'un système de fichiers NTFS.

fsutil hardlink create target_file source_file

Les fichiers doivent se trouver sur le même lecteur logique.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X