Les liaisons symboliques sur Linux sont une caractéristique fantastique, mais elles peuvent devenir cassées et laissées de pointer sur rien. Voici comment localiser les liens symboliques brisés, les examiner et les supprimer de votre système si vous en avez besoin.
Liens symboliques 101
Liens symboliques , également appelé "liens soft" et "liens symboliques", constituent une forme de raccourcis pouvant indiquer des fichiers et des répertoires. Un lien symbolique ressemble à un fichier ou répertoire régulier dans une fenêtre de gestionnaire de fichiers. Il apparaît également comme une entrée dans une liste de fichiers dans une fenêtre de terminal. Le fichier ou le répertoire auquel les points symboliques peuvent être n'importe où dans l'arborescence du système de fichiers.
Par exemple, disons que vous avez un symbole symbolique dans votre répertoire de maison appelé "Dave-link" qui pointe vers un fichier appelé "Text-File.txt" situé ailleurs dans l'arborescence du système de fichiers. Les commandes que vous utilisez sur le symbole symbolique sont automatiquement appliquées au fichier auquel cela pointe. Si vous essayez d'utiliser
chat
ou
moins
Sur le Symlink, vous verrez en réalité le contenu du fichier "texte-fichier.txt".
Une installation Linux standard contient de nombreux liens symboliques. Même si vous ne créez aucun vous-même, le système d'exploitation les utilise. Les routines d'installation d'application utilisent souvent des liens symboliques pour signaler les fichiers exécutables. Lorsque le logiciel est mis à jour, le fichier binaire est remplacé par la nouvelle version et tous les symboles continuent de fonctionner comme avant, tant que le nom du nouveau fichier est identique à celui de l'ancien.
Nous pouvons facilement voir des liens symboliques en utilisant
ls
dans le répertoire racine. Certaines des entrées sont affichées dans une couleur différente sur notre
Ubuntu 20.10
Machine à tester, ils sont affichés en bleu clair.
Nous tapons ce qui suit:
LS /
Nous pouvons faire un look plus profond en utilisant le
à
Option (longue liste). Nous tapons la commande suivante pour examiner toutes les entrées "lib" et l'entrée unique "bin":
ls -l / lib * / bin
Au début de chaque ligne est un "L", ce qui indique que l'article est un lien symbolique. Le texte après "- & gt;" montre à ce que le symbole du symbole pointe. Dans notre exemple, les objectifs sont tous des annuaires.
Les autorisations sont répertoriées comme lues, écrivez et exécutez le propriétaire, le groupe et d'autres. Ce sont des fausses entrées par défaut. Ils ne reflètent pas les autorisations réelles des objets auxquels le point symbolique. Ce sont les autorisations sur le fichier cible ou le répertoire qui prenant la priorité et sont honorés par le système de fichiers.
Symboles brisés
Un symbole symbolique est cassé (ou laissé pendling) lorsque le fichier auquel pointe les points est supprimé ou déplacé vers un autre endroit. Si une routine de désinstallation d'une application ne fonctionne pas correctement ou si elle est interrompue avant qu'elle ne finit pas, vous pourriez être laissé avec des liens symboliques brisés.
Si une personne supprime manuellement un fichier sans savoir que les symboles, ces symboles ne fonctionnent plus. Ils seront comme des panneaux routiers pointant vers une ville qui a été bulldozed.
Nous pouvons facilement voir ce comportement à l'aide d'un symbolique appelé "Bonjour" dans le répertoire actuel. Nous tapissons ce qui suit, en utilisant
ls
voir ça:
LS -L
Il pointe vers un programme appelé "HTG" dans un répertoire appelé "bin". Si nous "gèrent" le symboliste, il exécute le programme pour nous:
./ Bonjour
Nous pouvons maintenant vérifier si c'est ce qui se passe en exécutant directement le programme:
../ bin / htg
Comme prévu, nous avons la même réponse. Supprimons le fichier de programme:
RM ../bin/htg
Maintenant, lorsque nous examinons le Symlink, nous voyons qu'il est listé en rouge car Linux sait qu'il est cassé. Cela nous dit également à ce qu'elle utilisait, nous pouvons donc remplacer le fichier, recompiler le programme ou faire tout ce qui est nécessaire pour réparer le lien symbolique.
Notez que si nous essayons d'exécuter le symbole symbolique, l'erreur que nous obtenons des références Le nom symbolique, plutôt que le nom du programme auquel les points Symlink.
Nous tapons ce qui suit:
./ Bonjour
Trouver des symboles brisés
Versions la plus moderne de
trouve
avoir le
Xtype
option (type étendu),
qui simplifie trouver des liens symboliques brisés
. Nous allons utiliser le
l
drapeau
Xtype
, pour lui dire de rechercher des liens. À l'aide de
trouve
et
Xtype
comme suit, sans aucun des autres
taper
Drapeaux, forces
Xtype
Pour retourner des liens brisés:
trouver. -xtype l
Exécution de la commande dans notre répertoire de base de test trouve quelques-unes quelques symboles de symboles brisés. Notez que la recherche est récursive par défaut, de sorte qu'il recherche automatiquement tous les sous-répertoires.
Le "Bonjour" Symlink Nous avons cassé exprès est répertorié, comme prévu. L'un des autres liens symboliques est lié au navigateur Firefox et le reste est associé à des boutons-pression.
Si nous tuyons la sortie à travers
toilettes
avec le
à
Option (lignes), nous pouvons compter les lignes, ce qui est identique à compter les symboles brisés.
Nous tapons ce qui suit:
trouver. -Xtype l | wc -l
Nous sommes informés que nous avons 24 liaisons symbolistes brisés à rien.
Trouver, revoir, puis supprimer
Avant de vous précipiter et de supprimer tous les symboles brisés, regardez les résultats de la
trouve
commander. Voyez s'il y a une raison valable pour l'un des symboles brisés.
Parfois, le lien symbolique pourrait être le problème plutôt que le fichier cible. Si le lien symbolique a été créé de manière incorrecte, cela pourrait indiquer rien, mais la vraie cible est présente. La création du symbole du symbole serait la solution dans ce cas.
Il est également possible qu'un symbolique apparemment brisé soit utilisé comme autre chose, tel qu'un indicateur d'un verrou de fichier ou d'un autre indicateur Go / NO Go. Firefox fait cela; C'est ce que le premier symbole symbolique de notre liste est. Firefox n'est pas utilisé sur notre machine à tester, cependant, il est donc sûr pour nous de la supprimer.
Il est également possible que la cible ne soit présente que périodiquement, ce qui est le comportement attendu (et souhaité) de ce logiciel particulier. Peut-être que le fichier cible est copié à partir d'une autre machine ou du cloud, il effectue sa fonction et est ensuite supprimé à nouveau, seulement pour être remplacé par un programme différent du cycle suivant.
Le symboliste brisé pourrait également être un symptôme d'une installation logicielle qui a échoué. Dans ce cas, au lieu de supprimer le symbole symbolique, vous devez le réparer manuellement ou répéter l'installation.
Lorsque vous avez corrigé les liens brisés, vous devez continuer, répétez la commande pour effectuer la recherche. Les liens symboliques fixes doivent ensuite être absents des résultats de la recherche.
Pour l'amour de la sécurité, il est préférable de limiter vos déménagements symboliques à vos propres répertoires. Soyez extrêmement méfiant d'exécuter ces commandes en tant que root, ou sur des répertoires système.
Suppression des symboles brisés
Les
-exec
(Exécuter) option exécute des commandes sur le
trouve
Résultats de recherche. Nous allons utiliser
rm
supprimer chaque lien symbolique cassé. Les
{}
la chaîne est remplacée par le nom de chaque liaison symbolique brisée, car chacun est découvert par
trouve
.
Nous devons utiliser un point-virgule (
;
) Pour mettre fin à la liste des commandes que nous voulons
-exec
courir. Nous allons utiliser une barre oblique inverse (
\
) "échapper à" le point-virgule, il est donc traité comme faisant partie de la
trouve
commande plutôt que quelque chose
Frapper
devrait agir.
Nous tapons ce qui suit:
trouver. -xtype l -exec rm {} \;
Nous sommes retournés à l'invite de commande sans indication que tout s'est passé. Pour vérifier que les liens brisés ont été supprimés, nous répétons la commande pour les rechercher, comme suit:
trouver. -xtype l
Il n'y a pas de résultats correspondants, ce qui signifie que les symboles de symboles brisés ont été supprimés.
N'oubliez pas de passer en revue d'abord
Encore une fois, prenez toujours le temps d'examiner une liste de symboles avant d'exécuter la commande pour les supprimer. Vous pouvez éviter de supprimer tout ce que vous n'êtes pas sûr en exécutant la commande pour les supprimer dans les répertoires appropriés.
Par exemple, ci-dessus, nous aurions pu exécuter la commande dans le répertoire ".snap", puis supprimé manuellement le lien "Hello" solitaire. Cela aurait laissé le verrou de Firefox Soldink intact.