GNU/Linux >> Tutoriels Linux >  >> Linux

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

Un lien symbolique, également appelé lien symbolique ou lien symbolique , est un type de fichier spécial qui pointe simplement vers un autre fichier ou répertoire, tout comme les raccourcis dans Windows. Créer un lien symbolique revient à créer un alias vers un fichier réel.

Si vous essayez d'accéder au lien symbolique, vous accédez en fait au fichier cible vers lequel pointe le lien symbolique. Les modifications effectuées sur le contenu du fichier de lien modifient le contenu du fichier cible réel.

Si vous utilisez la commande ls avec l'option -l, voici à quoi ressemble un lien symbolique :

lrwxrwxrwx 1 abhishek abhishek 23 Jul  2 08:51 link_prog -> newdir/test_dir/prog.py

Dans la plupart des distributions Linux, les liens sont affichés dans une couleur différente du reste des entrées afin que vous puissiez distinguer les liens des fichiers et répertoires normaux.

Les liens symboliques offrent un moyen pratique d'organiser et de partager des fichiers. Ils fournissent un accès rapide à des chemins de répertoire longs et déroutants. Ils sont largement utilisés dans les bibliothèques de liens sous Linux.

Maintenant que vous en savez un peu plus sur les liens symboliques, voyons comment les créer.

Pour créer un lien symbolique vers le fichier cible à partir du nom du lien , vous pouvez utiliser la commande ln avec l'option -s comme ceci :

ln -s target_file link_name

L'option -s est importante ici. Il détermine que le lien est un lien symbolique. Si vous ne l'utilisez pas, cela créera un lien physique. J'expliquerai la différence entre les liens symboliques et les liens physiques dans un autre article.

Les liens symboliques peuvent parfois prêter à confusion, c'est pourquoi vous devez prendre note de quelques éléments.

C'est tout le but des liens après tout. Vous accédez au fichier cible en accédant au lien. Vous pouvez apporter des modifications au fichier cible via les liens. Voyons avec exemple.

J'ai un fichier prog.py dans newdir/test_dir. Il a les attributs suivants :

-rw-r--r-- 1 abhishek abhishek 163 Apr 13 15:07 newdir/test_dir/prog.py

Maintenant, je vais créer un lien symbolique vers ce fichier dans mon répertoire actuel :

ln -s newdir/test_dir/prog.py link_prog

Voici les attributs du lien nouvellement créé :

lrwxrwxrwx 1 abhishek abhishek 23 Jul  2 08:51 link_prog -> newdir/test_dir/prog.py

Remarquez le l (c'est L, pas un) en début de ligne ? Si vous connaissez les autorisations de fichiers sous Linux, vous saurez que le « l » signifie un lien et qu'il vous indique donc que ce fichier est en fait un lien. Pour vous rafraîchir la mémoire, - signifie fichier et d signifie répertoire.

Maintenant, si j'utilise ce lien pour modifier le contenu ou les attributs, la même chose se reflétera dans le fichier cible. Par exemple, j'utilise la commande touch sur le lien symbolique et vous remarquerez qu'elle modifie l'horodatage du fichier cible.

touch link_prog 

ls -l newdir/test_dir/prog.py 

-rw-r--r-- 1 abhishek abhishek 163 Jul  2 10:04 newdir/test_dir/prog.py

Comment sauriez-vous si le lien pointe vers un fichier ou un répertoire ? Vous ne pouvez pas le savoir tant que vous n'avez pas suivi le chemin et accédé au fichier cible lui-même.

Oui, c'est tout à fait possible. C'est pourquoi vous devez être prudent lors de la création de liens symboliques sous Linux. Le fichier cible auquel vous créez un lien n'a pas besoin d'exister. Vous ne recevrez aucune erreur ou avertissement pour la création d'un lien vers un fichier/répertoire qui n'existe pas.

Vous obtiendrez une erreur uniquement lorsque vous essayez d'accéder au fichier cible, soit via le lien, soit par lui-même. La commande ls fonctionnera toujours.

ln -s non_existant_dir link_dir
less link_dir
link_dir: No such file or directory

Avez-vous remarqué la permission du fichier sur le lien symbolique ? Les liens symboliques sont toujours créés avec la permission 777 (rwxrwxrwx). Pour un fichier normal, cela signifierait que n'importe qui peut accéder au fichier. Mais ce n'est pas le cas pour les liens.

lrwxrwxrwx 1 abhishek abhishek 23 Jul  2 08:51 link_prog -> newdir/test_dir/prog.py

Si les autorisations de fichiers sur les liens étaient traitées telles quelles, n'importe quel utilisateur pourrait créer un lien symbolique vers un fichier sécurisé et y accéder librement. Ce serait un problème de sécurité majeur. Heureusement, cela n'arrive pas. Parce que l'autorisation sur les fichiers cibles compte, pas l'autorisation sur les liens.

Vous pouvez utiliser la commande chmod pour modifier l'autorisation sur le lien, mais cela modifiera l'autorisation du fichier lié, pas le lien lui-même.

Vous pouvez faire un lien symbolique qui pointe vers un autre lien et ainsi de suite. C'est ce qu'on appelle un lien symbolique chaîné. Il vaut mieux les éviter car cela crée plus de confusion.

Eh bien c'est ça. Je suppose que vous avez maintenant une meilleure connaissance des liens symboliques et que vous savez comment créer des liens symboliques sous Linux. Vous pouvez en savoir plus sur la commande symlinks qui peut vous aider à trouver des liens symboliques brisés sous Linux et à les gérer facilement.

Si vous avez des questions ou des suggestions, veuillez laisser un commentaire ci-dessous.


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

  2. Comment créer un fichier ZIP protégé par mot de passe sous Linux

  3. Comment créer un swap sous Linux

  4. Comment créer un fichier d'échange sous Linux

  5. Qu'est-ce que les liens souples et les liens durs dans le système de fichiers Linux

Guide pour ajouter des liens symboliques Linux

Linux ln - Comment créer un lien symbolique sous Linux [Exemple de commande Bash]

Comment supprimer des liens symboliques sous Linux

Comment créer des liens symboliques sous Linux

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

Comment obtenir une liste de liens symboliques sous Linux