Wikipedia 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 contenant une liste de telles entrées.) Ce terme est utilisé dans les systèmes de fichiers permettant de créer plusieurs liens physiques pour le même fichier.
Je me demande si le concept de lien physique est équivalent au concept Windows de raccourci .
Si les liens physiques ne sont pas équivalents à des raccourcis, quelle est la fonctionnalité Windows la plus proche des liens matériels?
Réponses:
Non, un lien dur est complètement différent. Un lien symbolique est plus proche d'un raccourci Windows (bien qu'il existe des différences importantes, les liens symboliques ressemblent davantage aux raccourcis Windows que ne le sont les liens physiques). Un lien dur est une chose différente et une dont vous n’a presque jamais besoin.
En bref, un lien symbolique est créé avec cette commande:
Si vous courez ensuite
ls -l
, vous verrez:Le
->
moyen quibar
est un lien versfoo
. Ainsi, l'ouverturebar
, avec un éditeur de texte par exemple, ouvrira le fichier séparéfoo
. Cependant, la suppressionbar
ne fera que supprimer le raccourci, cela n'affectera pas le fichierfoo
.Les liens durs, en revanche, sont créés avec cette commande:
Si vous exécutez maintenant
ls -l
, il n'y a aucune indication de relation entre les fichiers:Mais — et c’est très important — c’est en fait le même fichier . Les fichiers sur les systèmes de fichiers Unix sont stockés à l'aide d' inodes ; Un inode est essentiellement la façon dont le système de fichiers mappe un nom de fichier sur un emplacement particulier du disque dur physique. Ainsi, les liens physiques sont des fichiers qui pointent sur le même inode que leur cible. Une autre façon de le dire est que tous les fichiers sont en fait des liens durs pointant vers leurs inodes. Faire un lien physique 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 cela, utilisez
ls -i
l’affichage qui montre l’inode associé à un fichier. Créons un lien symbolique et un lien dur et voyons ce qui se passe:Maintenant, vérifiez leurs inodes:
Comme vous pouvez le voir ci-dessus, les deux
foo
etHardLinkToFoo
ont le même inode (16648029) alors que SoftLinkToFoo en a un différent (16648036).Que se passe-t-il si nous renommons
foo
avecmv foo bar
?La couleur rouge indique un lien brisé cassé, celui dont la cible ne peut plus être trouvée. Cela est dû au fait que les liens symboliques renvoient au nom du fichier, pas à son inode. Notez qu'en dépit du changement de nom, l'inode reste le même, donc le lien dur fonctionne bien, il fonctionne toujours.
En résumé, les liens physiques sont en réalité deux manifestations du même fichier; Ce sont des pointeurs sur la même section du disque. Les liens symboliques ne sont que des raccourcis. Pour prendre une analogie avec le monde réel, les liens physiques ressemblent à deux numéros de téléphone différents pour la même ligne téléphonique et les liens symboliques, c'est comme avoir deux lignes téléphoniques différentes dans la même maison.
la source
rm
ouunlink()
) d'un lien physique ne décrémente que le nombre de liens jusqu'à ce que le nombre de liens atteigne zéro, lorsque les blocs occupés par le contenu du fichier sont libérés. Je ne suis pas sûr que dire «les liens durs sont en réalité deux instances du même fichier» est strictement correct, car les deux noms pointent vers le même inode, et donc le même contenu, plutôt que s'il existe deux instances du fichier lui-même aucun sens.Il existe une bonne explication sur les liens physiques et symboliques, mais une chose doit être clarifiée.
Windows raccourcis sont équivalents ou similaires à ni liens souples ni liens durs . Au niveau du système de fichiers, ce ne sont que des fichiers. C'est la coque qui comprend leur structure et les interprète comme des liens. Les raccourcis Windows peuvent également pointer vers des objets d'espaces de noms de shell non liés au système de fichiers (imprimantes, éléments du panneau de configuration, dossiers virtuels).
Les raccourcis Windows, en plus du nom de l'objet du système de fichiers, contiennent les informations suivantes: PIDL ("chemin" binaire opaque dans l'espace de noms du shell), description, raccourci clavier, icône, répertoire de travail. Windows ajoute également des identificateurs d'objet NTFS si le système de fichiers NTFS est utilisé, afin de corriger les raccourcis cassés.
L'équivalent approximatif d'un raccourci Windows est un fichier .desktop . Voir cette question sur SuperUser: Existe - t-il un équivalent de .lnk sous Linux?
la source
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, les humains ne savent pas retenir les chiffres, mais les noms. (C'est comme ça que les annuaires ont évolué)
Par conséquent, le nom de fichier est entré dans l'image pour donner à chaque inode un nom lisible par l'homme. Fondamentalement, un lien physique lie un nom de fichier à un inode. Un inode peut avoir plusieurs liens durs. S'il n'y a aucun lien physique présent pour un inode particulier, l'espace disque utilisé par l'inode peut être réaffecté à de nouveaux fichiers. Ce qui signifie qu’au moins un lien matériel doit être présent pour chaque fichier. Le nom de fichier (visualisé sous le nom de fichier / icône que vous voyez dans le navigateur de fichiers) lui-même est un lien dur.
Sous Windows, le raccourci est un fichier séparé (fichier * .lnk). Il contient des informations sur le fichier d'origine (naturellement le chemin du fichier). Selon Linux, un raccourci Windows serait un autre inode lié à un nom de fichier se terminant par '.lnk'.
la source
Sous Windows, vous pouvez également créer des liens physiques si vous avez un système de fichiers NTFS.
Les fichiers doivent être sur le même lecteur logique.
la source
subst
commande. Un outil peut ne pas savoir / s'en préoccuper et donc refuser de créer un lien dur, cependant. L’ extension Link Shell, qui permet à l’explorateur de les créer , est très utile .Une grosse différence, un lien physique ne peut être créé pour des dossiers, mais pour des fichiers.
Votre question devrait faire la différence entre un lien symbolique ou un lien virtuel et un raccourci .
comme suit:
Ainsi, lorsque vous cliquez sur un raccourci, votre répertoire est remplacé par le fichier réel, tandis que soft-link renvoie à son emplacement comme si c'était le fichier réel. Pour cela, sous Linux, vous pouvez utiliser terminal et cd pour créer des liens symboliques alors que vous ne pouvez pas créer de raccourcis. .
Un raccourci Windows et un lanceur Linux (pointant vers un emplacement) seraient identiques.
la source