Bonjour à nouveau. Dans cette introduction aux liens durs et aux liens symboliques, nous allons d’abord essayer d’apprendre et de définir ce que chacun signifie. Ensuite, nous discuterons des différences entre les deux.
Alors, qu’est-ce qu’un lien dur et que fait-il exactement dans le shell ?
Un lien dur est simplement un nom supplémentaire pour un fichier existant sur Linux ou d’autres systèmes d’exploitation de type Unix.
Un nombre quelconque de liens durs, et donc un nombre quelconque de noms, peut être créé pour n’importe quel fichier. Les liens durs peuvent également être créés vers d’autres liens durs. Cependant, ils ne peuvent pas être créés pour des répertoires, et ils ne peuvent pas traverser les frontières du système de fichiers ou s’étendre sur des partitions.
Peut-être que l’application la plus utile des liens durs est de permettre aux fichiers, aux programmes et aux scripts (c’est-à-dire les programmes courts) d’être facilement accessibles dans un répertoire différent du fichier original ou du fichier exécutable (c’est-à-dire la version prête à être exécutée d’un programme). En tapant le nom du lien dur, le programme ou le script sera exécuté de la même manière qu’en utilisant son nom original. (http://www.linfo.org/hard_link.html)
Vous voulez lire cette histoire plus tard ? Enregistrez-la dans Journal.
Alors, que signifie réellement cette définition ? Eh bien, vous pouvez créer un lien dur vers un fichier existant en utilisant la commande ln nom_fichier lien dur. J’ai fourni un exemple ci-dessous de la création d’un lien dur en action. Dans l’exemple ci-dessous, j’ai créé un hardlink aka un raccourci vers le fichier nommé file1 avec le hardlink nommé hlink1.
Now lets ls -i
. Pour qu’il liste tous les fichiers avec inode.
INODE Définition : L’inode est une structure de données dans un système de fichiers de style Unix qui décrit un objet du système de fichiers tel qu’un fichier ou un répertoire. Chaque inode stocke les attributs et l’emplacement du ou des blocs de disque des données de l’objet. Les attributs des objets du système de fichiers peuvent inclure des métadonnées (heures du dernier changement, accès, modification), ainsi que des données sur le propriétaire et les autorisations.
Les répertoires sont des listes de noms attribués aux inodes. Un répertoire contient une entrée pour lui-même, son parent, et chacun de ses enfants. (https://en.wikipedia.org/wiki/Inode)
Si vous regardez le fichier1 et le hlink1, vous pouvez voir que l’inode du côté gauche est le même. En substance, les hardlinks agissent comme un raccourci vers ce fichier qui est lié en dur.
Passons maintenant aux « Soft Links »
Les soft links sont un type spécial de fichier qui pointe vers un autre fichier, un peu comme un raccourci. Contrairement à un lien dur, un lien symbolique ne contient pas les données du fichier cible. Il pointe simplement vers une autre entrée quelque part dans le système de fichiers. Cette différence confère aux liens symboliques certaines qualités que les liens durs n’ont pas, comme la possibilité de créer des liens vers des répertoires ou des fichiers sur des ordinateurs distants mis en réseau par NFS. De plus, lorsque vous supprimez un fichier cible, les liens symboliques vers ce fichier deviennent inutilisables, alors que les liens durs préservent le contenu du fichier. (https://kb.iu.edu/d/abbe)
Maintenant, créons un lien souple pour le comparer au lien dur que nous avons créé ci-dessus.
Ouvrons donc un terminal. Allez dans le finder ou la recherche et entrez terminal il devrait apparaître cliquez dessus et ouvrez.
Pour notre exemple créons d’abord un fichier. Si on tape touch example1
et qu’on appuie sur entrée. Nous pouvons créer un fichier. Maintenant pour créer le lien logiciel.
Si nous tapons dans le shell ln -s example1 softlink1
nous créons un lien logiciel entre les fichiers. Voir l’exemple ci-dessous.
Maintenant si nous devions taper ls -i
nous remarquerons également que seul le fichier hardlink a le même inode que le hardlink alors que le fichier soft link a des inodes différents.