GNU/Linux >> Tutoriels Linux >  >> Linux

Comment trouver et supprimer des liens symboliques brisés sous Linux

Il y a quelque temps, nous avons expliqué qu'est-ce qu'un lien souple et un lien physique avec des exemples pratiques. Parfois, vous pouvez oublier de supprimer les liens symboliques inutilisés ou les liens symboliques qui ne pointent nulle part. Garder les liens inutilisés sur le système de fichiers n'endommage pas le système, sauf qu'il occupe un peu d'espace disque. Il ne sert donc à rien de les garder. Trouvez et supprimez simplement les liens symboliques brisés sur votre système Linux.

Il peut y avoir plusieurs façons de trouver des liens symboliques ou des liens symboliques brisés sous Linux. Ici, j'ai donné deux méthodes.

Liens symboliques est un utilitaire de maintenance de liens symboliques en ligne de commande. Il scanne le répertoire donné et liste les liens symboliques s'il y en a.

Symlinks est disponible sur les dépôts officiels de nombreuses distributions Linux.

Pour installer Symlinks sur CentOS , exécutez :

$ sudo yum install symlinks

Sur Fedora :

$ sudo dnf install symlinks

Sur Debian , Ubuntu , Linux Mint :

$ sudo apt-get install symlinks

Sur Ubuntu , vous devez activer le [universe] référentiel.

$ sudo add-apt-repository universe

Après avoir installé Symlinks, exécutez la commande suivante pour rechercher et supprimer les liens symboliques rompus :

$ symlinks -dr <directory-path>

La commande ci-dessus recherchera les liens symboliques rompus dans le répertoire donné et les supprimera.

Ici,

  • d - supprimer les liens symboliques pendants
  • r - récursif

Permettez-moi de vous montrer un exemple. Je vais créer un fichier nommé "abc" dans le répertoire courant.

$ touch abc

Ensuite, je crée un lien symbolique appelé 'xyz' pour abc fichier :

$ ln -s abc xyz

Supprimez maintenant le fichier réel, c'est-à-dire abc .

$ rm abc

Comme vous le savez peut-être déjà, une fois que nous avons supprimé le fichier réel, le lien symbolique n'a plus aucune valeur. Parce que ce n'est qu'un raccourci et qu'il est cassé maintenant.

Pour trouver les liens symboliques brisés, exécutez :

$ symlinks .

Veuillez noter le point (. ) à la fin. Cela signifie que nous recherchons des liens brisés dans le répertoire courant.

Exemple de résultat :

dangling: /home/sk/xyz -> abc

Ici, xyz est suspendu parce que nous avons supprimé le fichier source réel "abc" . Supprimons donc ce lien brisé à l'aide de la commande :

$ symlinks -dr .

Exemple de résultat :

dangling: /home/sk/xyz -> abc
deleted: /home/sk/xyz -> abc

Enfin, exécutez symlinks commande à nouveau pour vérifier s'il reste des liens brisés.

Nous pouvons également utiliser find commande pour supprimer les liens symboliques brisés.

Pour trouver les liens symboliques rompus, mais pas les supprimer, exécutez :

$ find . -xtype l

Cette commande listera les liens symboliques rompus dans le répertoire courant. Si vous souhaitez rechercher des liens symboliques rompus sur un chemin spécifique, par exemple /usr/local/ , faites :

$ find /usr/local/ -xtype l

Sortie :

La commande ci-dessus recherchera les liens brisés dans /usr/local/ et ses sous-répertoires. Comme vous pouvez le voir dans la sortie ci-dessus, il existe de nombreux liens symboliques brisés.

Vous pouvez également utiliser la commande suivante pour répertorier les liens symboliques inutilisés :

$ find /usr/local/ -xtype l ! -exec test -e {} \; -print

Il est également possible de vérifier où pointent les liens rompus. C'est une bonne pratique de s'assurer que nous supprimons les liens symboliques prévus.

$ find /usr/local/ -xtype l -exec ls -l {} \+

Exemple de résultat :

lrwxrwxrwx 1 root root 28 Jan 21 08:53 /usr/local/bin/drracket -> /home/sk/racket/bin/drracket
lrwxrwxrwx 1 root root 27 Jan 21 08:53 /usr/local/bin/gracket -> /home/sk/racket/bin/gracket
lrwxrwxrwx 1 root root 32 Jan 21 08:53 /usr/local/bin/gracket-text -> /home/sk/racket/bin/gracket-text
lrwxrwxrwx 1 root root 24 Jan 21 08:53 /usr/local/bin/mred -> /home/sk/racket/bin/mred
lrwxrwxrwx 1 root root 29 Jan 21 08:53 /usr/local/bin/mred-text -> /home/sk/racket/bin/mred-text
lrwxrwxrwx 1 root root 23 Jan 21 08:53 /usr/local/bin/mzc -> /home/sk/racket/bin/mzc
lrwxrwxrwx 1 root root 24 Jan 21 08:53 /usr/local/bin/mzpp -> /home/sk/racket/bin/mzpp
lrwxrwxrwx 1 root root 28 Jan 21 08:53 /usr/local/bin/mzscheme -> /home/sk/racket/bin/mzscheme
lrwxrwxrwx 1 root root 26 Jan 21 08:53 /usr/local/bin/mztext -> /home/sk/racket/bin/mztext
lrwxrwxrwx 1 root root 30 Jan 21 08:53 /usr/local/bin/pdf-slatex -> /home/sk/racket/bin/pdf-slatex
lrwxrwxrwx 1 root root 29 Jan 21 08:53 /usr/local/bin/plt-games -> /home/sk/racket/bin/plt-games
lrwxrwxrwx 1 root root 28 Jan 21 08:53 /usr/local/bin/plt-help -> /home/sk/racket/bin/plt-help
lrwxrwxrwx 1 root root 28 Jan 21 08:53 /usr/local/bin/plt-r5rs -> /home/sk/racket/bin/plt-r5rs
lrwxrwxrwx 1 root root 28 Jan 21 08:53 /usr/local/bin/plt-r6rs -> /home/sk/racket/bin/plt-r6rs
lrwxrwxrwx 1 root root 34 Jan 21 08:53 /usr/local/bin/plt-web-server -> /home/sk/racket/bin/plt-web-server
lrwxrwxrwx 1 root root 26 Jan 21 08:53 /usr/local/bin/racket -> /home/sk/racket/bin/racket
lrwxrwxrwx 1 root root 24 Jan 21 08:53 /usr/local/bin/raco -> /home/sk/racket/bin/raco
lrwxrwxrwx 1 root root 28 Jan 21 08:53 /usr/local/bin/scribble -> /home/sk/racket/bin/scribble
lrwxrwxrwx 1 root root 29 Jan 21 08:53 /usr/local/bin/setup-plt -> /home/sk/racket/bin/setup-plt
lrwxrwxrwx 1 root root 26 Jan 21 08:53 /usr/local/bin/slatex -> /home/sk/racket/bin/slatex
lrwxrwxrwx 1 root root 29 Jan 21 08:53 /usr/local/bin/slideshow -> /home/sk/racket/bin/slideshow
lrwxrwxrwx 1 root root 27 Jan 21 08:53 /usr/local/bin/swindle -> /home/sk/racket/bin/swindle

Pour supprimer tous les liens rompus d'un coup, exécutez :

$ sudo find /usr/local/ -xtype l -delete

Ou,

$ sudo find /usr/local/ -xtype l ! -exec test -e {} \; -delete

Remplacez /usr/local/ avec votre propre chemin.

Suggestion de lecture :

  • Comment répertorier les liens symboliques sous Linux

J'espère que ça aide.


Linux
  1. Comment rechercher et supprimer des répertoires de manière récursive sous Linux

  2. Comment trouver et tuer le processus Zombie sous Linux

  3. Comment supprimer les tampons de mémoire et le cache sous Linux

  4. Comment rechercher et supprimer des photos en double sous Linux

  5. Comment rechercher et supprimer des répertoires et des fichiers vides sous Linux

Comment rechercher et supprimer des répertoires vides sous Linux

Comment rechercher et fermer des ports ouverts sous Linux

Comment trouver des fichiers en double sous Linux et les supprimer

Comment trouver la date et l'heure d'installation du système d'exploitation Linux

Comment trouver des liens symboliques brisés sous Linux

Comment trouver le PID et le PPID d'un processus sous Linux