So finden Sie defekte Symlinks auf Linux

Nov 12, 2024
Linux
Fatmawati Achmad Zaenuri / Shutterstock

Die symbolischen Verbindungen auf Linux sind ein fantastisches Feature, aber sie können gebrochen werden und auf nichts zeigen. Hier finden Sie defekte symbolische Links, überprüfen Sie sie und entfernen Sie sie von Ihrem System, wenn Sie möchten.

Symbolische Verbindungen 101.

Symbolische Links , auch "Soft Links" und "Symlinks" genannt, sind eine Form von Verknüpfungen, die auf Dateien und Verzeichnisse hinweisen können. Ein Symlink sieht in einem Dateimanagerfenster wie eine regelmäßige Datei oder ein Verzeichnis aus. Es zeigt auch als Eintrag in einem Dateieintrag in einem Terminalfenster. Die Datei oder das Verzeichnis, an das die Symlink-Punkte in der Dateisystemstruktur überall sein können.

Nehmen wir zum Beispiel an, Sie haben ein Symlink in Ihrem Home-Verzeichnis namens "Dave-Link", das auf eine Datei namens "text-file.txt" zeigt, die sich an einem anderen Ort in der Dateisystemstruktur befindet. Befehle, die Sie auf dem Symlink verwenden, werden automatisch auf die Datei angewendet, auf die sie zeigt. Wenn Sie versuchen zu verwenden Katze oder weniger Auf dem Symlink sehen Sie tatsächlich den Inhalt der Datei "text-file.txt".

Eine Standard-Linux-Installation enthält viele Symlinks. Auch wenn Sie nicht selbst erstellen, verwendet das Betriebssystem sie. Anwendungsinstallationsroutinen verwenden häufig Symlinks, um auf Ausführende Dateien zu zeigen. Wenn die Software aktualisiert wird, wird die Binärdatei durch die neue Version ersetzt, und alle Symlinks funktionieren wie zuvor, solange der Name der neuen Datei das gleiche wie das Alte ist.

Wir können leicht einige Symlinks mit der Verwendung sehen ls. im Stammverzeichnis. Einige der Einträge werden in einer anderen Farbe angezeigt. Ubuntu 20.10. Testmaschine, sie werden in hellblau angezeigt.

Wir geben Folgendes ein:

  LS /  

Wir können einen tieferen Blick unter Verwendung der -l. (lange Auflistung) Option. Wir geben den folgenden Befehl ein, um alle Einträge "LIB" und den einzelnen "Bin" -EN-Eintrag anzusehen:

 ls -l / lib * / bin 

Zu Beginn jeder Zeile ist ein "l", der anzeigt, dass der Artikel ein Symlink ist. Der Text nach "- & gt;" zeigt an, was das Symlink zeigt. In unserem Beispiel sind die Ziele alle Verzeichnisse.

Die Berechtigungen werden als Lesen, Schreiben und Ausführen für den Eigentümer, der Gruppe und anderen aufgeführt. Dies sind Standard-Fake-Einträge. Sie spiegeln nicht die tatsächlichen Berechtigungen für die Objekte wider, an denen die Symlinks zeigen. Es sind die Berechtigungen für die Zieldatei oder das Verzeichnis, die Vorrang vornehmen und vom Dateisystem geehrt werden.

Gebrochene Symlinks.

Ein Symlink ist defekt (oder linkert baumelend), wenn die Datei, an der IT-Punkte gelöscht oder an einen anderen Ort verschoben wird. Wenn die Deinstallationsroutine einer Anwendung nicht ordnungsgemäß funktioniert oder unterbrochen wird, bevor es abgeschlossen ist, bleiben Sie möglicherweise mit defekten Symlinks.

Wenn jemand manuell eine Datei löscht, ohne Symlinks zu kennen, funktionieren Sie darauf, dass diese Symlinks nicht mehr funktionieren. Sie werden wie Straßenschilder sein, die auf eine Stadt zeigen, die bulldoziert wurde.

Wir können dieses Verhalten leicht mit einem Symlink namens "Hello" im aktuellen Verzeichnis sehen. Wir geben das Folgende ein, verwenden ls. Es zu sehen:

 LS -L 

Es zeigt auf ein Programm namens "HTG" in einem Verzeichnis namens "Bin." Wenn wir das Symlink "ausführen", führt dies das Programm für uns aus:

 ./ Hallo 

Wir können jetzt überprüfen, ob dies das passiert, indem wir das Programm direkt ausführen:

 ../ bin / htg 

Wie erwartet erhalten wir die gleiche Antwort. Lassen Sie uns die Programmdatei löschen:

 RM ../BIN/HTG

Wenn wir uns jetzt auf das Symlink ansehen, sehen wir, dass es in Rot aufgeführt ist, weil Linux weiß, dass es kaputt ist. Es sagt uns auch an, was es verwendet wird, um zu zeigen, dass wir die Datei ersetzen können, um das Programm neu kompilieren oder zu tun, was erforderlich ist, um das Symlink zu reparieren.

Beachten Sie, dass, wenn wir versuchen, den Symlink auszuführen, der Fehler, den wir erhalten, den Symlink-Namen, und nicht der Name des Programms, an das die Symlink-Punkte angezeigt werden.

Wir geben Folgendes ein:

 ./ Hallo 

Gebrochene Symlinks finden.

Die meisten modernen Versionen von finden habe den Xtype. (erweiterte Typ) Option, was vereinfacht, defekte Symlinks zu finden . Wir verwenden das L. kennzeichnen Xtype. , um es zu sagen, nach Links zu suchen. Verwendet finden und Xtype. wie folgt ohne einen der anderen Typ Flaggen, Kräfte. Xtype. Um gebrochene Links zurückzugeben:

 Finden. -XTYPE L 

Wenn Sie den Befehl in unserem Testhome-Verzeichnis ausführen, findet ein paar gebrochene Symlinks. Beachten Sie, dass die Suche standardmäßig rekursiv ist, sucht es also automatisch alle Unterverzeichnisse.

Der "Hallo" -Symlink, den wir mit dem Zweck gebrochen haben, ist wie erwartet aufgeführt. Einer der anderen Symlinks hängt mit dem Firefox-Browser zusammen, und der Rest ist mit Snaps verbunden.

Wenn wir den Ausgang durchleiten Toilette mit dem -l. (Linien) Option, wir können die Zeilen zählen, was dasselbe ist, wie die defekten Symlinks zählen.

Wir geben Folgendes ein:

 Finden. -XTYPE L |. WC -L 

Wir sind informiert, dass wir 24 gebrochene Symlinks auf nichts zeigen.

Finden, überprüfen und dann entfernen

Bevor Sie einstürzen und alle gebrochenen Symlinks löschen, schauen Sie durch die Ergebnisse der finden Befehl. Sehen Sie, ob es einen gültigen Grund für eine der gebrochenen Symlinks gibt.

Manchmal ist das Symlink anstelle der Zieldatei möglicherweise das Problem. Wenn das Symlink falsch erstellt wurde, könnte es auf nichts zeigen, aber das eigentliche Ziel ist vorhanden. Das erneute Erstellen des Symlinks wäre der Fix in diesem Fall.

Es ist auch möglich, dass ein anscheinend zerbrochener Symlink als etwas anderes verwendet wird, beispielsweise ein Indikator für eine Dateisperre oder ein anderes GO / NO GO-Indikator. Firefox macht das; Das ist das, was das erste Symlink in unserer Liste ist. Firefox wird jedoch nicht auf unserer Testmaschine verwendet, daher ist es sicher, dass wir es löschen können.

Es ist auch möglich, dass das Ziel nur regelmäßig vorhanden ist, und dies ist das erwartete (und gewünschte) Verhalten dieser bestimmten Software. Vielleicht wird die Zieldatei von einem anderen Computer oder der Cloud kopiert, es führt seine Funktion aus, und wird dann wieder gelöscht, nur um durch ein anderes Programm im nächsten Zyklus ersetzt zu werden.

Das defekte Symlink könnte auch ein Symptom einer Software-Installation sein, die fehlgeschlagen ist. Wenn Sie in diesem Fall das Symlink löschen, sollten Sie ihn entweder manuell beheben oder die Installation wiederholen.

Wenn Sie die defekten Links behoben haben, müssen Sie den Befehl wiederholen, um die Suche durchzuführen. Die festen Symlinks sollten dann in den Suchergebnissen abwesend sein.

Für den Safety willen ist es am besten, Ihre Symlink-Removals in Ihre eigenen Verzeichnisse zu beschränken. Seien Sie äußerst vorsichtig, um diese Befehle als root oder auf Systemverzeichnissen auszuführen.

Defekte Symlinks entfernen.

Die -Exec. (EXECUTE) Option läuft Befehle auf der finden Suchergebnisse. Wir werden benutzen Rm um jedes defekte Symlink zu löschen. Die {} String wird durch den Namen jedes zerbrochenen Symlinks ersetzt, da jeder von entdeckt wird finden .

Wir müssen ein Semikolon verwenden ( ; ) Um die Liste der von Ihnen gewünschten Befehle zu beenden -Exec. laufen. Wir werden ein Backslash verwenden ( \ ) das Semikolon "entkommen", so dass es als Teil der finden Befehl, eher als etwas Bash sollte eingehen.

Wir geben Folgendes ein:

 Finden. -XTYPE L-EXEC RM {} \; 

Wir sind an die Eingabeaufforderung zurückgegeben, ohne dass etwas passiert ist. Um zu überprüfen, ob die kaputten Links entfernt wurden, wiederholen wir den Befehl, um nach ihnen zu suchen:

 Finden. -XTYPE L 

Es gibt keine passenden Ergebnisse, was bedeutet, dass die gebrochenen Symlinks entfernt wurden.

Denken Sie daran, zuerst zu überprüfen

Nehmen Sie sich immer wieder an, um eine Liste von Symlinks zu überprüfen, bevor Sie den Befehl ausführen, um sie zu löschen. Sie können vermeiden, dass Sie nicht gelöscht werden, ob Sie sich nicht sicher sind, indem Sie den Befehl ausführen, um sie in den entsprechenden Verzeichnissen zu löschen.

Beispielsweise hätten wir den Befehl im Verzeichnis " Dies hätte das Firefox-Lock-Symlink unberührt verlassen.


Linux - Die beliebtesten Artikel

Wie entscheiden Sie sich zwischen Ubuntu, Kubuntu, Xubuntu und Lubuntu

Linux Mar 19, 2025

tomeqs / shacktock.com. Es gibt mehr als ein Ubuntu. Sie können Ubuntu, Kubuntu, Xubuntu oder Lubuntu herunterladen: Aber was ist der Unterschied, und welche ..


So erhalten Sie einen grafischen Geräte-Manager für Linux

Linux Mar 17, 2025

Africa Studio / Shutterstock.com Es gibt endlos. Linux-Befehlszeilen-Dienstprogramme, die die Details der Hardware Ihres Computers anzeigen . Hardin..


Neue Produkte in Debian 11 „Bullseye“

Linux Jul 22, 2025

Debiane Der Vorläufer von vielen anderen Linux-Distributionen hat Release 11 in der Testphase zur Verfügung gestellt. Waagen Sie die Tugenden des Upgradings oder sind Sie nur ..


So konfigurieren oder deaktivieren Sie Linux Mint Update-Benachrichtigungen

Linux Jul 9, 2025

Hatte genug von linux mints ärgerliche Update-Benachrichtigungen? Oder vielleicht sind Sie so besorgt, dass Sie auf dem neuesten Stand bleiben möchten, dass Sie sie noch mehr sehen möch..


Was sind die Nachteile auf Linux von Schalt?

Linux Oct 27, 2025

Larry Ewing und der Gimp Linux Evangelisten (wie ich) weisen schnell auf die vielen Vorteile des Umschaltens von Windows und MacOS hin. Aber kein Betriebssys..


Dieser neue Linux-Gaming-Laptop verfügt über die Spezifikationen, um alles auszuführen

Linux Oct 20, 2025

Juno-Computer Linux und Gaming beginnen in letzter Zeit viel mehr zusammen zu kommen. Die Dampfdeck ist auf dem Weg mit Linux installiert, und Juno hat gerad..


10 grundlegende Linux-Befehle für Anfänger

Linux Oct 13, 2025

Erst einmal auf Linux anfangen? Wenn Sie sich mit der Befehlszeile wohl fühlen, ist essentiell. Wenn Sie bereits mit Command Line-Dienstprogrammen vertraut sind, werden Sie feststellen, d..


5 Ubuntu Linux -Funktionen, die Sie verwenden sollten

Linux Dec 6, 2024

Ubuntu Linux ist reichhaltig und verfügt über eine kuratierte Auswahl an vorinstallierter Software. Wenn Sie jedoch ein bisschen tiefer graben, finden Sie einige Funktionen, die Sie verwenden..


Kategorien