So finden und beheben Sie defekte Symlinks unter Linux

Möchten Sie mehr über das Löschen defekter Symlinks auf Ihrem System erfahren? Vielleicht hat Ihnen jemand erzählt, wie tote symbolische Links Speicherplatz auf Ihrem Speichergerät beanspruchen, und jetzt möchten Sie sie endgültig entfernen.

Glücklicherweise stehen verschiedene Dienstprogramme zur Verfügung, die Sie auf Ihren Linux-Computer herunterladen können, um symbolische Links zu verwalten. Diese Tools helfen Ihnen auch dabei, defekte Softlinks zu finden und dauerhaft zu reparieren.

Hier werden wir diskutieren, wie Sie defekte symbolische Links auf Ihrem System mithilfe von Symlinks und dem Befehl find melden und beheben können.

Im Allgemeinen verfügt jedes Computersystem über zwei Arten von Links: Softlinks und Hardlinks. Hardlinks sind Verzeichniseinträge, die einen bestimmten Namen mit einer auf Ihrem System vorhandenen Datei verknüpfen. Dies sind die Originaldateien, die an einer bestimmten Adresse in Ihrem Speicher gespeichert sind.

Andererseits sind Softlinks Textzeichenfolgen, die zwei Verzeichnisse oder Dateien miteinander verknüpfen. Programmverknüpfungen sind ein gutes Beispiel für symbolische Links. Angenommen, Datei A hat eine symbolische Verknüpfung mit Datei B. Dies bedeutet, dass Datei A den absoluten oder relativen Pfad zu Datei B speichert.

Verwandte: So erstellen Sie einen Symlink unter Linux

So erstellen Sie einen Symlink:

  1. Starten Sie das Terminal, indem Sie Strg + Alt + T auf Ihrer Tastatur drücken.
  2. Erstellen Sie eine neue Textdatei mit dem Namen text.txt .
     touch text.txt
  3. Verknüpfen Sie eine andere Textdatei ( another.txt ) mit der gerade erstellten Datei ( text.txt ).
     ln -s text.txt another.txt

Sie haben gerade zwei verschiedene Textdateien über einen symbolischen Link miteinander verknüpft. Der Befehl ln ist die Standardmethode zum Erstellen symbolischer Links auf einem Linux-basierten Betriebssystem. Das -s im oben genannten Befehl steht für symbolische Links.

Verwandte: Verwendung des Befehls ls unter Linux

Das Hauptproblem bei symbolischen Links besteht darin, dass beim Löschen oder Verschieben der Zieldatei der symbolische Link nicht automatisch entfernt wird. Stattdessen verweist der Link jetzt auf eine Datei, die auf Ihrem System nicht einmal vorhanden ist. Solche Links werden als baumelnde, kaputte, verwaiste oder tote Links bezeichnet.

Zunächst müssen Sie bestätigen, dass im System eine symbolische Verknüpfung vorhanden ist. Sie können dies einfach mit dem Befehl ll und grep tun.

 ll | grep txt

Mit dem obigen Befehl werden alle Symlinks aufgelistet, die mit Textdateien in Ihrem aktuellen Arbeitsverzeichnis verknüpft sind.

Wenn wir nun den oben erstellten Symlink durch Löschen der übergeordneten Textdatei ( text.txt ) unterbrechen möchten :

 rm text.txt

Der Symlink wird unterbrochen und nicht von Ihrem System entfernt. Sie können dies bestätigen, indem Sie ll | eingeben Befehl grep txt in Ihrem Terminal erneut.

Obwohl ein paar defekte Symlinks Ihrem Computer keinen Schaden zufügen, kann dies in kürzester Zeit zu tausend werden. Aus diesem Grund müssen baumelnde Links auf Ihrem System überwacht werden.

Die einzige Möglichkeit, diese fehlerhaften Symlinks zu beheben, besteht darin, sie zu löschen. Ihr System enthält Hunderte von baumelnden Links, und niemand hat die Zeit, manuell nach diesen Links zu suchen. In solchen Fällen erweisen sich Linux-Tools und -Befehle als sehr hilfreich.

Symlinks ist ein leistungsstarkes Dienstprogramm, das Ihnen alle Tools zur Verfügung stellt, die Sie zum Verwalten und Beheben fehlerhafter Symlinks auf Ihrem System benötigen. Da es auf den meisten Linux-Distributionen standardmäßig nicht installiert ist, müssen Sie es manuell installieren.

Sie können Pacman verwenden, um das Paket unter Arch Linux zu installieren :

 sudo pacman -S symlinks

Auf Fedora:

 sudo dnf install symlinks

Auf CentOS:

 sudo yum install symlinks

Auf Debian-basierten Distributionen:

 sudo apt-get install symlinks

Wenn Sie Ubuntu ausführen, müssen Sie vor der Installation des Symlinks-Pakets das Universum-Repository zur Repository-Liste Ihres Systems hinzufügen.

 sudo add-apt-repository universe

Nachdem Sie Symlinks erfolgreich installiert haben, müssen Sie auf Ihrem System nach verwaisten Links suchen. Geben Sie dazu Folgendes ein:

 symlinks .

Die . (Punkt-) Zeichen bezieht sich auf das aktuelle Arbeitsverzeichnis. Wenn Sie fehlerhafte Symlinks in Ihrem / home- Verzeichnis melden möchten, können Sie dies tun, indem Sie Folgendes eingeben:

 symlinks /home

Wenn auf Ihrem System ein defekter Link vorhanden ist, erhalten Sie eine Ausgabe, die ungefähr so ​​aussieht.

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

Um den gemeldeten Symlink schnell zu löschen, können Sie das Flag -d mit dem Standardbefehl verwenden.

 symlinks -d .

Geben Sie Folgendes ein, um baumelnde Symlinks im Verzeichnis / home zu löschen:

 symlinks -d /home

Dieses Mal listet die Ausgabe nicht nur den defekten Link auf, sondern meldet auch, dass der Link jetzt gelöscht ist.

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

Um fehlerhafte symbolische Links in einem bestimmten Verzeichnis rekursiv zu melden und zu löschen, verwenden Sie das Flag -dr mit dem Standardbefehl, wobei d für delete und r für rekursiv steht.

 symlinks -dr .

Verwenden des Befehls Suchen

Der Befehl find ist auf jedem Linux-System vorinstalliert. Wie der Name schon sagt, können Sie mit diesem Befehl nach Ordnern und Dateien suchen . Mit dem Befehl find können Sie auch tote Softlinks auf Ihrem System einfach melden und löschen.

Geben Sie Folgendes ein, um fehlerhafte symbolische Links in Ihrem aktuellen Arbeitsverzeichnis aufzulisten:

 find . -xtype l

Um defekte Links in einem anderen Verzeichnis Ihres Systems zu finden, ersetzen Sie einfach die . (Punkt-) Zeichen mit dem Verzeichnispfad. Der folgende Befehl sucht nach fehlerhaften Links im Verzeichnis / home .

 find /home -xtype l

Sie können auch die defekten Symlinks auflisten, die von Ihrem System nicht verwendet werden.

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

Verwenden Sie Folgendes, um zu überprüfen, wo diese fehlerhaften Links verweisen:

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

Abhängig von der Anzahl der fehlerhaften symbolischen Links auf Ihrem System erhalten Sie eine Ausgabe, die ungefähr so ​​aussieht.

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

Darüber hinaus können Sie defekte symbolische Links mit dem folgenden Befehl auf einmal löschen.

 sudo find . -xtype l -delete

Es gibt auch eine alternative Möglichkeit, tote Links zu löschen:

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

Symbolische Links sind für ein Linux-System wichtig, da sie den Prozess der Pfadauflösung und -verwaltung auf Ihrem Computer vereinfachen. Wenn Sie sich jedoch nicht darum kümmern, können fehlerhafte symbolische Links einen großen Teil Ihres Systemspeichers beanspruchen, und Sie werden nicht einmal davon erfahren. In solchen Situationen kommen Dienstprogramme wie Symlinks und Find ins Spiel.

Wenn Sie ein Anfänger sind und Ihre Linux-Kenntnisse verbessern möchten, ist das Erlernen neuer Befehle von Zeit zu Zeit der perfekte Ansatz. Benutzer sollten wissen, welchen Befehl sie benötigen, um eine bestimmte Situation effizient zu lösen.