Sur une machine Linux, lorsque l'on créé des liens symboliques, il peut arriver que l'on supprime au bout d'un moment la source de ce lien. Découvrez deux méthodes pour vérifier les liens symboliques orphelins et les supprimer.
Avant toute chose, il existe une commande native sur Linux permettant d'effectuer cette tâche :
find . -xtype l
Cela listera dans le dossier courant les liens symboliques pour lesquels la source n'existe plus. Il est possible d'ajouter l'argument -delete
pour supprimer les résultats.
find . -xtype l -delete
C'est simple et efficace. Un utilitaire existe : Symlinks. Il réalise les mêmes tâches que les commandes précédentes. Voyons comment l'utiliser.
Commencez par l'installer avec votre gestionnaire de paquets préférés. Pour ma part, ce sera apt-get :
apt-get install symlinks
Pour l'exemple, j'ai créé un simple fichier et un lien symbolique vers celui-ci :
# Création du fichier
vi source.txt
# Création d'un lien symbolique vers ce fichier
ln -s source.txt mon_symlink
# Suppression du fichier source
rm source.txt
Nous nous retrouvons donc avec un lien symbolique orphelin, c'est-à-dire dont la source n'existe plus.
Lançons l'utilitaire Symlinks :
symlinks .
Le résultat de la commande :
dangling: /tmp/Lab/mon_symlink -> source.txt
Le lien symbolique orphelin est bien détecté et mentionne le nom du fichier source.
Pour supprimer ces liens morts, ajoutez le paramètre -dr
:
symlinks -dr .
-d
: supprime les liens morts-r
: de manière récursive
La sortie sera alors :
dangling: /tmp/Lab/mon_symlink -> source.txt
deleted: /tmp/Lab/mon_symlink -> source.txt