Comment trouver et réparer les liens symboliques brisés sous Linux

Vous voulez en savoir plus sur la suppression des liens symboliques rompus sur votre système? Peut-être que quelqu'un vous a dit à quel point les liens symboliques morts occupent de l'espace sur votre périphérique de stockage et que vous voulez maintenant vous en débarrasser pour de bon.

Heureusement, il existe plusieurs utilitaires disponibles que vous pouvez télécharger sur votre ordinateur Linux afin de gérer les liens symboliques. Ces outils vous aideront également à trouver des liens souples brisés et à les réparer de manière permanente.

Ici, nous allons discuter de la façon dont vous pouvez signaler et réparer les liens symboliques brisés sur votre système à l'aide de liens symboliques et de la commande find .

Généralement, chaque système informatique a deux types de liens — liens souples et liens physiques. Les liens physiques sont des entrées de répertoire qui lient un nom spécifique à un fichier présent sur votre système. Ce sont les fichiers originaux qui sont stockés à une adresse particulière sur votre stockage.

D'autre part, les liens souples sont des chaînes de texte qui relient deux répertoires ou fichiers entre eux. Les raccourcis de programme sont un excellent exemple de liens symboliques. Supposons que le fichier A ait un lien symbolique avec le fichier B. Cela signifie que le fichier A stockera le chemin absolu ou relatif du fichier B.

Connexes: Comment créer un lien symbolique sous Linux

Pour créer un lien symbolique:

  1. Lancez le terminal en appuyant sur Ctrl + Alt + T sur votre clavier.
  2. Créez un nouveau fichier texte nommé text.txt .
     touch text.txt
  3. Liez un autre fichier texte ( another.txt ) avec le fichier que vous venez de créer ( text.txt ).
     ln -s text.txt another.txt

Vous venez de lier deux fichiers texte différents ensemble à l'aide d'un lien symbolique. La commande ln est le moyen par défaut de créer des liens symboliques sur un système d'exploitation basé sur Linux. Le -s dans la commande mentionnée ci-dessus représente des liens symboliques.

Connexes: Comment utiliser la commande ls sous Linux

Le problème majeur avec les liens symboliques est que si vous supprimez ou déplacez le fichier cible, le lien symbolique n'est pas supprimé automatiquement. Au lieu de cela, le lien pointe maintenant vers un fichier qui n'est même pas présent sur votre système. Ces liens sont appelés liens suspendus, brisés, orphelins ou morts.

Tout d'abord, vous devez confirmer qu'un lien symbolique existe dans le système. Vous pouvez facilement le faire en utilisant les commandes ll et grep .

 ll | grep txt

La commande ci-dessus listera tous les liens symboliques associés aux fichiers texte dans votre répertoire de travail actuel.

Maintenant, si nous devions rompre le lien symbolique que nous avons créé ci-dessus en supprimant le fichier texte parent ( text.txt ):

 rm text.txt

Le lien symbolique sera rompu et n'est pas supprimé de votre système. Vous pouvez le confirmer en tapant ll | grep txt de nouveau dans votre terminal.

Bien que quelques liens symboliques rompus ne causent aucun dommage à votre ordinateur, cela peut progressivement devenir un millier en un rien de temps. C'est pourquoi il est nécessaire de surveiller les liens suspendus sur votre système.

La seule façon de corriger ces liens symboliques rompus est de les supprimer. Votre système contient des centaines de liens suspendus et personne n'a le temps de vérifier ces liens manuellement. Dans de tels cas, les outils et commandes Linux se révèlent vraiment utiles.

Symlinks est un utilitaire puissant qui vous fournit tous les outils dont vous avez besoin pour gérer et réparer les liens symboliques brisés sur votre système. Comme il n'est pas installé sur la plupart des distributions Linux par défaut, vous devrez l'installer manuellement.

Vous pouvez utiliser Pacman pour installer le package sur Arch Linux :

 sudo pacman -S symlinks

Sur Fedora:

 sudo dnf install symlinks

Sur CentOS:

 sudo yum install symlinks

Sur les distributions basées sur Debian:

 sudo apt-get install symlinks

Si vous exécutez Ubuntu, avant d'installer le package de liens symboliques, vous devrez ajouter le référentiel d'univers à la liste des référentiels de votre système.

 sudo add-apt-repository universe

Une fois que vous avez correctement installé les liens symboliques, vous devez rechercher les liens orphelins sur votre système. Pour ce faire, saisissez:

 symlinks .

Le . (point) fait référence au répertoire de travail actuel. Si vous souhaitez signaler des liens symboliques rompus dans votre répertoire / home , vous pouvez le faire en tapant:

 symlinks /home

Si un lien rompu est présent sur votre système, vous obtiendrez une sortie qui ressemble à ceci.

 dangling: /home/sharmadeepesh/another.txt -> test.txt

Pour supprimer rapidement le lien symbolique signalé, vous pouvez utiliser l'indicateur -d avec la commande par défaut.

 symlinks -d .

Pour supprimer les liens symboliques suspendus dans le répertoire / home , entrez:

 symlinks -d /home

Cette fois, la sortie répertoriera non seulement le lien rompu, mais signalera également que le lien est maintenant supprimé.

 dangling: /home/sharmadeepesh/another.txt -> test.txt
deleted: /home/sharmadeepesh/another.txt -> test.txt

Pour signaler et supprimer de manière récursive les liens symboliques rompus dans un répertoire donné, utilisez l'indicateur -dr avec la commande par défaut, où d signifie supprimer et r signifie récursif.

 symlinks -dr .

Utilisation de la commande Rechercher

La commande find est préinstallée sur chaque système Linux. Comme son nom l'indique, vous pouvez rechercher des dossiers et des fichiers à l' aide de cette commande. La commande find vous permet également de signaler et de supprimer facilement les liens logiciels morts sur votre système.

Pour répertorier les liens symboliques rompus dans votre répertoire de travail actuel, tapez:

 find . -xtype l

Pour trouver des liens rompus présents dans n'importe quel autre répertoire de votre système, remplacez simplement le fichier . (point) avec le chemin du répertoire. La commande suivante recherchera les liens rompus dans le répertoire / home .

 find /home -xtype l

Vous pouvez également lister les liens symboliques rompus qui ne sont pas utilisés par votre système.

 find . -xtype l ! -exec test -e {} ; -print

Pour vérifier où ces liens rompus pointent, utilisez:

 find . -xtype l -exec ls -l {} +

En fonction de la quantité de liens symboliques rompus sur votre système, vous obtiendrez une sortie qui ressemble à ceci.

 lrwxrwxrwx 1 root root 19 Feb 21 11:53 /home/sharmadeepesh/another.txt -> /home/sharmadeepesh/text.txt

De plus, vous pouvez supprimer les liens symboliques rompus en une seule fois avec la commande suivante.

 sudo find . -xtype l -delete

Il existe également un moyen alternatif de supprimer les liens morts:

 sudo find . -xtype l ! -exec test -e {} ; -delete

Les liens symboliques sont importants pour un système Linux car ils facilitent le processus de résolution et de gestion des chemins sur votre ordinateur. Mais s'ils ne sont pas pris en charge, les liens symboliques rompus peuvent occuper une grande partie du stockage de votre système et vous ne le saurez même pas. Dans de telles situations, des utilitaires tels que les liens symboliques et find entrent en jeu.

Si vous êtes un débutant et que vous souhaitez améliorer votre expertise en Linux, alors apprendre de nouvelles commandes de temps en temps est l'approche idéale. Les utilisateurs doivent savoir de quelle commande ils ont besoin pour résoudre efficacement une situation donnée.