Sous Linux, un lien est un fichier spécial qui renvoie à un autre fichier ou répertoire. De cette manière, un fichier peut être placé à plusieurs endroits à la fois. Lorsque le fichier original est supprimé, le lien est conservé. Cela peut entraîner des pannes et encombrer le système.
Pour commencer, expliquons la méthode qui permet de vérifier que le fichier est bien un lien. Cela se fait facilement à l'aide de l'utilitaire ls
. Ensuite, nous examinerons trois méthodes de suppression, chacune ayant ses propres particularités.
L'utilitaire ls
permet d'obtenir des informations sur le fichier. Pour utiliser l'utilitaire, donnez-lui l'option -l
et spécifiez le chemin d'accès. Prenons par exemple le fichier ~/symlinks/link_1
:
$ ls -l ~/symlinks/link_1
Vous pouvez vérifier la présence de liens dans un catalogue entier :
$ ls -l ~/symlin
Un fichier dont on n'a pas besoin est marqué d'une flèche caractéristique après son nom.
La commande rm
peut être utilisée pour supprimer n'importe quel fichier du système de fichiers Linux, y compris les liens. Elle convient donc à notre tâche. Il est important de mentionner ici que le fichier ou le répertoire d'origine ne sera pas affecté par la suppression du lien.
Dans le terminal, exécutez la commande :
$ rm ~/symlinks/link_1
Pour obtenir des informations détaillées sur la procédure, ajoutez l'option -v
à la commande :
$ rm -v ~/symlinks/link_1
En outre, vous pouvez vérifier si le lien a disparu du répertoire. Pour ce faire, utilisez la commande ls
décrite précédemment.
Vous savez maintenant comment supprimer un lien symbolique Linux.
L'utilitaire unlink
est conçu pour supprimer des fichiers du système de fichiers Linux. Il suffit de spécifier le chemin d'accès au lien :
$ unlink ~/symlinks/link_1
Dans le cadre de la tâche à accomplir, rm et unlink fonctionnent presque de la même manière. Passons maintenant à la dernière méthode.
La commande find
permet de rechercher et de supprimer des liens dans un répertoire donné. Cela signifie que vous n'avez pas besoin d'utiliser ls
en plus.
Contrairement aux deux options précédentes, elle dispose de fonctionnalités assez avancées, par exemple la définition de critères de recherche. Mais la syntaxe n'est pas si simple pour cette raison non plus.
Pour effectuer une recherche, vous devez spécifier un répertoire et quelques paramètres :
$ find ~/symlinks/ -type l -print
Le paramètre -type l
est nécessaire pour sélectionner uniquement les liens symboliques, -print
pour afficher le nom complet. Et avec l'aide de -maxdepth
vous pouvez spécifier la profondeur de la recherche par répertoires imbriqués. Si vous spécifiez 1, la recherche sera effectuée uniquement sur le répertoire lui-même, sans les pièces jointes :
$ find ~/symlinks/ -maxdepth 1 -type l -print
Lorsque le répertoire contient de nombreux liens, vous pouvez spécifier un modèle de recherche pour la commande find
. Prenons l'exemple d'une situation où nous voulons trouver uniquement les liens cachés dont la date de dernière modification ne remonte pas à plus de 30 jours :
$ find ~/data/ -type l -name ".*" -mtime -30 -print
Deux critères ont été ajoutés :
-nom
- recherche par nom
.-mtime
- recherche par heure de modification.Tous les liens trouvés peuvent être supprimés selon le modèle spécifié. Pour ce faire, -print
est remplacé par -delete
:
$ find ~/data/ -type l -name ".*" -mtime -30 -delete
À la fin de l'instruction, nous allons nous occuper de la recherche et de la suppression des liens brisés qui ne mènent nulle part, par exemple, après avoir supprimé le fichier ou le répertoire d'origine. Le paramètre -xtype l
convient à cet effet, et -print
n'est pas nécessaire pour la sortie :
$ find ~/broken_links/ -xtype l
Par conséquent, tous les liens brisés seront affichés dans le terminal. Pour les supprimer, ajoutez -delete
à la fin de la commande :
$ find ~/broken_links/ -xtype l -delete
Ceci complète les instructions pour la suppression d'un lien sous Linux.