
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 commecp
oumv
, 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 !
développeur javascript
Super article, merci pour ces informations precieuses
• Lien vers le commentaire