GNU/Linux >> Tutoriels Linux >  >> Linux

Liens physiques et liens souples sous Linux expliqués

Vous êtes-vous déjà familiarisé avec quelque chose, avez-vous travaillé autour de lui, mais n'avez-vous pas entièrement compris ses concepts ? J'ai l'impression que cela m'arrive plus que la plupart des gens. C'est un sentiment frustrant, mais c'est aussi un sentiment auquel il est souvent facile de remédier. Parfois, il suffit que quelqu'un explique le concept en "anglais clair", c'est-à-dire en termes simples. C'est le but de cet article. Je veux parler de liens physiques et liens souples (symboliques) dans les termes les plus élémentaires possibles. Vous vous rendez peut-être compte que ce concept, qui est souvent un combat pour les administrateurs système, est assez simple. Si rien d'autre, je vous explique la syntaxe pour créer ces liens (dont beaucoup de gens ont du mal à se souvenir). Alors allons-y.

Liens physiques

Le concept de lien dur est le plus basique dont nous allons discuter aujourd'hui. Chaque fichier du système de fichiers Linux commence par un seul lien physique. Le lien se situe entre le nom du fichier et les données réelles stockées sur le système de fichiers. La création d'un lien physique supplémentaire vers un fichier signifie plusieurs choses différentes. Discutons-en.

Tout d'abord, vous créez un nouveau nom de fichier pointant exactement sur les mêmes données que l'ancien nom de fichier. Cela signifie que les deux noms de fichiers, bien que différents, pointent vers des données identiques. Par exemple, si je crée le fichier /home/tcarrigan/demo/link_test et écrivez hello world dans le fichier, j'ai un seul lien physique entre le nom du fichier link_test et le contenu du fichier hello world .

[tcarrigan@server demo]$ ls -l
total 4
-rw-rw-r--. 1 tcarrigan tcarrigan 12 Aug 29 14:27 link_test

Prenez note du nombre de liens ici (1 ).

Ensuite, je crée un nouveau lien dur dans /tmp exactement le même fichier en utilisant la commande suivante :

[tcarrigan@server demo]$ ln link_test /tmp/link_new

La syntaxe est ln (original file path) (new file path) .

Maintenant, quand je regarde mon système de fichiers, je vois les deux liens physiques.

[tcarrigan@server demo]$ ls -l link_test /tmp/link_new 
-rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 link_test
-rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 /tmp/link_new

La principale différence ici est le nom de fichier. Le nombre de liens a également été modifié (2 ). Plus particulièrement, si je cat le contenu du nouveau fichier, il affiche les données d'origine.

[tcarrigan@server demo]$ cat /tmp/link_new 
hello world

Lorsque des modifications sont apportées à un nom de fichier, l'autre reflète ces modifications. Les autorisations, le nombre de liens, la propriété, les horodatages et le contenu du fichier sont exactement les mêmes. Si le fichier d'origine est supprimé, les données existent toujours sous le lien physique secondaire. Les données ne sont supprimées de votre disque que lorsque tous les liens vers les données ont été supprimés. Si vous trouvez deux fichiers avec des propriétés identiques mais que vous ne savez pas s'ils sont liés en dur, utilisez le ls -i commande pour afficher l'inode Numéro. Les fichiers liés en dur partagent le même numéro d'inode.

[tcarrigan@server demo]$ ls -li link_test /tmp/link_new 
2730074 -rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 link_test
2730074 -rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 /tmp/link_new

Le numéro d'inode partagé est 2730074 , ce qui signifie que ces fichiers sont des données identiques.

Si vous voulez plus d'informations sur les inodes, lisez mon article complet ici.

Limites strictes

Bien qu'utiles, il existe certaines limites à ce que les liens physiques peuvent faire. Pour commencer, ils ne peuvent être créés que pour des fichiers normaux (et non des répertoires ou des fichiers spéciaux). De plus, un lien physique ne peut pas couvrir plusieurs systèmes de fichiers. Ils ne fonctionnent que lorsque le nouveau lien physique existe sur le même système de fichiers que l'original.

Liens souples

Communément appelés liens symboliques , des liens symboliques relient des fichiers non réguliers et réguliers. Ils peuvent également s'étendre sur plusieurs systèmes de fichiers. Par définition, un lien symbolique n'est pas un fichier standard, mais un fichier spécial qui pointe vers un fichier existant. Voyons comment créer un lien symbolique. J'utilise le ln -s commande et la syntaxe suivante :

ln -s (file path you want to point to) (new file path)

Dans l'exemple ci-dessous, je crée un nouveau fichier à /home/tcarrigan/demo/soft_link_test avec le contenu du fichier soft Hello world . Je crée ensuite un lien symbolique vers ce fichier à /tmp/soft_link_new :

[tcarrigan@server demo]$ ln -s /home/tcarrigan/demo/soft_link_test /tmp/soft_link_new
[tcarrigan@server demo]$ ls -l soft_link_test /tmp/soft_link_new 
-rw-rw-r--. 1 tcarrigan tcarrigan 17 Aug 30 11:59 soft_link_test
lrwxrwxrwx. 1 tcarrigan tcarrigan 35 Aug 30 12:09 /tmp/soft_link_new -> /home/tcarrigan/demo/soft_link_test

Notez que /tmp/soft_link_new est juste un lien symbolique, pointant vers le /home/tcarrigan/demo/soft_link_test d'origine . Si je cat le contenu de /tmp/soft_link_new , je devrais voir le soft Hello world texte.

[tcarrigan@server demo]$ cat /tmp/soft_link_new 
soft Hello world

Tout cela sonne bien, mais il y a quelques inconvénients à utiliser un lien symbolique. La plus grande préoccupation est la perte de données et la confusion des données. Si le fichier d'origine est supprimé, le lien symbolique est rompu. Cette situation est appelée lien symbolique suspendu . Si vous deviez créer un nouveau fichier portant le même nom que l'original, votre lien symbolique pendant ne serait plus du tout pendant. Il pointe vers le nouveau fichier créé, que ce soit votre intention ou non, alors gardez cela à l'esprit.

Dur ou mou ?

Il n'y a pas de réponse claire ici. Le meilleur lien est le type qui correspond à votre situation particulière. Bien que ces concepts puissent être difficiles à retenir, la syntaxe est assez simple, c'est donc un plus ! Pour garder les deux facilement séparés dans votre esprit, je vous laisse avec ceci :

  • Un lien physique pointe toujours un nom de fichier vers des données sur un périphérique de stockage.
  • Un lien symbolique pointe toujours un nom de fichier vers un autre nom de fichier, qui pointe ensuite vers des informations sur un périphérique de stockage.

J'espère que cela vous aidera à les séparer pendant que vous parcourez les types de liens nécessaires pour atteindre vos objectifs quotidiens !

[ Cours en ligne gratuit :Présentation technique de Red Hat Enterprise Linux. ]


Linux
  1. Comment créer des liens matériels et symboliques sous Linux

  2. Pipes et redirection sous Linux - expliqués !

  3. RHEL 7 – RHCSA Notes :Créez des liens matériels et logiciels.

  4. Que sont les liens symboliques (Soft Links) et comment les créer sous Linux

  5. Différence entre les liens symboliques et les liens physiques sous Linux

Guide pour ajouter des liens symboliques Linux

Expliquer Soft Link et Hard Link sous Linux avec des exemples

Qu'est-ce que les liens symboliques sous Linux ? Comment créer des liens symboliques ?

La commande ln sous Linux :créer des liens logiciels et matériels

Soft Links sous Linux - La référence complète

Liens matériels et liens logiciels sous Linux :tout ce que vous devez savoir