Linux : Comment créer un lien symbolique facilement

Comment créer un lien symbolique facilement sous Linux, l'afficher, le supprimer et le mettre à jour, sans erreur et avec une astuce mnémotechnique.
  • Linux
Créer un lien symbolique sous Linux
Lien symbolique créé sous Linux vers Apache HTTPD server

Créer un lien symbolique est extrêmement utile et simple à utiliser, encore faut-il se souvenir de la syntaxe exacte…

Créer un lien symbolique

ln -s /source /destination (lien symbolique)

On peut donc imaginer envoyer un fichier de configuration Apache HTTPD dans son répertoire de traitement.

ln -s /home/alex/Bureau/project1/vhost-project1.conf /etc/httpd/conf/extra/vhost-project1.conf

Il est également possible de créer un lien symbolique depuis un répertoire :

ln -s configuration.local.php configuration.php

Un autre exemple :

ln -s /home/web/html/ /var/www/

Permet de faire ceci :

[root@ns3367127 owncloud]# ls -l /var/www/
total 4
drwxr-xr-x 2 root root 4096 29 juil. 19:19 cgi-bin
lrwxrwxrwx 1 root root   15 21 sept. 16:53 html -> /home/web/html/

ln: impossible de créer le lien symbolique ‘./xxx’: Le fichier existe

Si jamais vous obtenez le message d’erreur suivant, vous avez probablement inversé les arguments source et destination.

Astuces mnémotechniques pour se souvenir de la syntaxe ln -s

  • ln s’utilise comme cp ou mv, source puis destination.
  • -s signifie symbolic, mais on peut penser -s comme source, c’est ce que je fais personnellement.

Afficher un lien symbolique

alex@antergos:/etc/httpd/conf/extra$ ls -l
total 80
-rw-r--r-- 1 root root 2877 23 oct. 20:27 httpd-autoindex.conf
-rw-r--r-- 1 root root 1777 23 oct. 20:27 httpd-dav.conf
-rw-r--r-- 1 root root 2942 23 oct. 20:27 httpd-default.conf
-rw-r--r-- 1 root root 1119 23 oct. 20:27 httpd-info.conf
-rw-r--r-- 1 root root 5078 23 oct. 20:27 httpd-languages.conf
-rw-r--r-- 1 root root 1391 23 oct. 20:27 httpd-manual.conf
-rw-r--r-- 1 root root 4450 23 oct. 20:27 httpd-mpm.conf
-rw-r--r-- 1 root root 2216 23 oct. 20:27 httpd-multilang-errordoc.conf
-rw-r--r-- 1 root root 13176 23 oct. 20:27 httpd-ssl.conf
-rw-r--r-- 1 root root 694 23 oct. 20:27 httpd-userdir.conf
-rw-r--r-- 1 root root 6092 17 sept. 10:43 httpd-vhosts.conf
-rw-r--r-- 1 root root 319 5 janv. 2018 php56_module.conf.pacsave
-rw-r--r-- 1 root root 318 4 déc. 20:43 php7_module.conf
-rw-r--r-- 1 root root 3161 23 oct. 20:27 proxy-html.conf
lrwxrwxrwx 1 root root 46 27 janv. 10:03 vhost-project1.conf -> /home/alex/Bureau/project1/vhost-project1.conf

Mettre un lien symbolique à jour

Si vous souhaitez mettre un lien symbolique à jour, vous pouvez utiliser l’option -f pour supprimer le lien symbolique précédemment créé (voir man ln).

-f, --force
remove existing destination files

Dans notre exemple on pourrait avoir changé la localisation de notre projet.

ln -s /home/alex/Bureau/project-x/vhost-project1.conf /etc/httpd/conf/extra/vhost-project1.conf -f

Supprimer un lien symbolique

Pour supprimer un lien symbolique, vous n’avez qu’à utiliser rm, comme d’habitude. Je n’ai pas testé sur des éléments montés, mais en local cela ne supprime que le lien symbolique, pas le lien de destination.

alex@antergos:/etc/httpd/conf/extra$ sudo rm -v vhost-project1.conf
[sudo] Mot de passe de alex :
'vhost-project1.conf' supprimé

Voir les différences entre unlink et rm.

Autre chose à savoir : si la destination change, le lien symbolique est automatiquement détruit !

Article publié le

Dernière modification le

1 réponse sur “Linux : Comment créer un lien symbolique facilement”

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.