Lorsque vous listez les fichiers en détail, vous voyez beaucoup d'informations. Examinons un exemple précédent d'informations d'inode provenant de la commande ls -li :
pete@icebox:~$ ls -li
140 drwxr-xr-x 2 pete pete 6 Jan 20 20:13 Desktop
141 drwxr-xr-x 2 pete pete 6 Jan 20 20:01 Documents
Nous avons précédemment survolé le troisième champ de ce résultat. Ce champ est le nombre de liens (link count).
Le Nombre de Liens sous Linux
Le nombre de liens sous Linux est le nombre total de liens physiques (hard links) qu'un fichier possède. Pour comprendre ce que cela signifie, nous devons d'abord discuter de ce que sont les liens. Sous Linux, il existe deux types de liens : les liens symboliques (symlinks) et les liens physiques (hard links).
Comprendre les Liens Symboliques (Symlinks)
Dans le système d'exploitation Windows, vous avez des raccourcis, qui sont essentiellement des alias pointant vers d'autres fichiers. Sous Linux, l'équivalent est un lien symbolique, également connu sous le nom de lien souple ou symlink. Un symlink est un type de fichier spécial qui pointe vers un autre fichier ou répertoire par son nom.
Voyons cela en pratique. Nous allons créer quelques fichiers, puis un lien symbolique.
pete@icebox:~/Desktop$ echo 'myfile' > myfile
pete@icebox:~/Desktop$ echo 'myfile2' > myfile2
pete@icebox:~/Desktop$ echo 'myfile3' > myfile3
pete@icebox:~/Desktop$ ln -s myfile myfilelink
pete@icebox:~/Desktop$ ls -li
total 12
151 -rw-rw-r-- 1 pete pete 7 Jan 21 21:36 myfile
93401 -rw-rw-r-- 1 pete pete 8 Jan 21 21:36 myfile2
93402 -rw-rw-r-- 1 pete pete 8 Jan 21 21:36 myfile3
93403 lrwxrwxrwx 1 pete pete 6 Jan 21 21:39 myfilelink -> myfile
Ici, nous avons créé un lien symbolique nommé myfilelink qui pointe vers myfile. Lorsque vous utilisez ls pour visualiser un ls symlink, il est clairement identifié par le l au début de la chaîne de permissions et le symbole -> pointant vers la cible. Notez que le symlink a son propre numéro d'inode unique (93403). Comme les symlinks pointent vers des noms de fichiers plutôt que vers des inodes, ils peuvent s'étendre sur différents systèmes de fichiers.
Comprendre les Liens Physiques (Hard Links)
L'autre type de lien est le lien physique. Un lien physique crée une autre entrée de fichier qui pointe directement vers le même inode que le fichier original.
Créons un lien physique pour myfile2 :
pete@icebox:~/Desktop$ ln myfile2 myhardlink
pete@icebox:~/Desktop$ ls -li
total 16
151 -rw-rw-r-- 1 pete pete 7 Jan 21 21:36 myfile
93401 -rw-rw-r-- 2 pete pete 8 Jan 21 21:36 myfile2
93402 -rw-rw-r-- 1 pete pete 8 Jan 21 21:36 myfile3
93403 lrwxrwxrwx 1 pete pete 6 Jan 21 21:39 myfilelink -> myfile
93401 -rw-rw-r-- 2 pete pete 8 Jan 21 21:36 myhardlink
Remarquez que myhardlink partage exactement le même numéro d'inode (93401) que myfile2. Le nombre de liens pour les deux fichiers est également passé à 2. C'est parce que deux entrées de fichiers pointent maintenant vers le même inode. Si vous modifiez le contenu de myfile2, les changements seront reflétés dans myhardlink, et vice versa. Si vous supprimez myfile2, les données du fichier seront toujours accessibles via myhardlink. L'inode et ses données ne sont supprimés du disque que lorsque le nombre de liens tombe à zéro. Étant donné que les liens physiques pointent vers des inodes, qui sont uniques au sein d'un même système de fichiers, ils ne peuvent pas s'étendre sur différents systèmes de fichiers.
Créer des Liens Symboliques et Physiques
Vous pouvez créer les deux types de liens à l'aide de la commande ln. La syntaxe est simple.
Pour créer un lien symbolique, utilisez l'option -s :
ln -s /chemin/vers/original /chemin/vers/lien
Pour créer un lien physique, omettez l'option -s :
ln /chemin/vers/original /chemin/vers/lien
L'utilisation des commandes ls symlinks ou ls links générales avec l'option -l est essentielle pour gérer et identifier ces différents types de fichiers.