Les liens physiques sont-ils équivalents aux raccourcis Windows?

51

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 qui contient une liste de ces entrées.) Le terme est utilisé dans les systèmes de fichiers qui permettent de créer plusieurs liens matériels pour le même fichier.

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

Si les liens durs ne sont pas équivalents aux raccourcis, quelle est la fonction Windows la plus proche des liens physiques?

    
posée Computernerd 10.03.2014 - 15:51
la source

5 réponses

112

Non, un lien dur est complètement différent. Un lien logiciel 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 et vous n'en aurez presque jamais besoin.

En bref, un lien logiciel est créé avec cette commande:

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

Le -> signifie que bar est un lien vers foo . Ainsi, l'ouverture de bar avec un éditeur de texte, par exemple, ouvrira le fichier séparé foo . Cependant, la suppression de bar supprimera simplement le raccourci, cela n'affectera pas le fichier foo .

Par contre, les liens durs sont créés avec cette commande:

ln foo bar

Si vous exécutez maintenant ls -l , il n’ya aucune indication de relation entre les fichiers:

-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 - ce sont en fait le même fichier . Les fichiers sur les systèmes de fichiers Unix sont stockés à l'aide de inodes ; un inode est essentiellement la façon dont le système de fichiers mappe un nom de fichier à un emplacement particulier sur le disque dur physique. Ainsi, les liens physiques sont des fichiers qui pointent vers 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 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 ou un ou aucun.

Pour mieux comprendre cela, utilisez ls -i qui montre l’inode associé à un fichier. Créons un lien logiciel et un lien dur et voyons ce qui se passe:

ln -s foo SoftLinkToFoo
ln foo HardLinkToFoo

Maintenant, vérifiez leurs inodes:

Comme vous pouvez le voir ci-dessus, foo et HardLinkToFoo ont le même inode (16648029) alors que SoftLinkToFoo en a un autre (16648036).

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

La couleur rouge indique un lien logiciel rompu, un lien dont la cible ne peut plus être trouvée. Cela est dû au fait que les liens logiciels pointent vers le nom d'un fichier, et non son inode. Notez que malgré le changement de nom, l'inode reste le même, le lien est donc correct, ça marche toujours.

En résumé, les liens physiques sont en réalité deux manifestations du même fichier même ; ils sont des pointeurs vers la même section du disque. Les liens logiciels ne sont que des raccourcis. Pour prendre une analogie réelle, les liens durs sont comme deux numéros de téléphone différents pour une même ligne téléphonique et les liens logiciels sont comme si deux lignes téléphoniques différentes se trouvaient dans la même maison.

    
réponse donnée terdon 10.03.2014 - 16:13
la source
18

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

Windows les raccourcis sont équivalents ou similaires à ni liens logiciels ni liens physiques . Au niveau du système de fichiers, ce ne sont que des 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 dans des espaces de noms de shell non liés au système de fichiers (imprimantes, éléments du panneau de contrôle, 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é pour corriger les raccourcis brisé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?

    
réponse donnée Athari 11.03.2014 - 12:57
la source
6

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 sont pas bons pour se souvenir des chiffres mais des noms. (C'est comme ça que les répertoires 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. Si aucun lien dur n'est présent pour un inode particulier, l'espace disque utilisé par l'inode peut être ré-alloué pour les nouveaux fichiers. Ce qui signifie qu'au moins un lien dur doit être présent pour chaque fichier. Le nom de fichier (visualisé sous la forme du nom de fichier / de l'icône que vous voyez dans le navigateur de fichiers) est lui-même un lien actif.

Sous Windows, le raccourci est un fichier distinct (fichier * .lnk). Il contient des informations sur le fichier d'origine (ce qui est compréhensible le chemin du fichier). Dans la perception de Linux, un raccourci Windows serait un autre inode relié à un nom de fichier se terminant par «.lnk».

    
réponse donnée Shaakunthala 10.03.2014 - 16:13
la source
2

Sous Windows, vous pouvez également créer des liens durs si vous avez un système de fichiers NTFS.

fsutil hardlink create target_file source_file

Les fichiers doivent être sur le même disque logique.

    
réponse donnée Spook 13.03.2014 - 09:44
la source
1

Une grande différence, le lien physique ne peut pas être créé pour les dossiers, mais pour les fichiers.

  

Un raccourci peut être créé pour les dossiers, vous ne pouvez donc pas dire qu'ils sont   équivalent.

Votre question doit faire la différence entre lien symbolique ou lien logiciel et raccourci .

selon cela:

  

Un lien symbolique est le niveau du système de fichiers, et tout le voit comme le   fichier original. Une application ne nécessite aucun support particulier pour utiliser un   lien symbolique.

     

Un "raccourci" est juste un fichier régulier qui fait référence à la   fichier ou répertoire de destination.

Ainsi, lorsque vous cliquez sur un raccourci, votre répertoire changera pour le fichier réel, tandis que le lien logiciel se référera à son emplacement comme si c'était le fichier réel, car sous Linux, vous pouvez utiliser les liens symboliques cd aux raccourcis.

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

    
réponse donnée nux 10.03.2014 - 16:11
la source

Lire d'autres questions sur les étiquettes