Symbolische Links (Symlinks) verweisen auf andere Dateien oder Verzeichnisse. Zum Löschen verwendest du rm, unlink oder find.
Voraussetzungen
Du benötigst Schreibrechte für das Verzeichnis, das den Symlink enthält. Das Löschen eines Symlinks lässt die Zieldatei unberührt.
Prüfe mit ls -l, ob eine Datei ein Symlink ist:
ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7
Das l am Anfang kennzeichnet einen symbolischen Link. Der Pfeil zeigt das Ziel.
Mit rm löschen
Der Befehl rm entfernt Symlinks wie normale Dateien:
rm symlink_name
Mehrere Symlinks auf einmal:
rm symlink1 symlink2
Mit Bestätigung vor dem Löschen:
rm -i symlink_name
Wichtig: Bei Symlinks auf Verzeichnisse keinen Schrägstrich anhängen:
rm symlink_zu_verzeichnis/
rm: kann 'symlink_zu_verzeichnis/' nicht entfernen: Ist ein Verzeichnis
Der Schrägstrich lässt rm annehmen, es handle sich um ein echtes Verzeichnis.
Vorsicht: Verwende niemals rm -r bei Symlinks auf Verzeichnisse. Das löscht den Inhalt des Zielverzeichnisses, nicht den Symlink.
Mit unlink löschen
Der Befehl unlink akzeptiert nur ein einzelnes Argument:
unlink symlink_name
Auch hier keinen Schrägstrich anhängen – unlink kann keine Verzeichnisse verarbeiten.
Defekte Symlinks finden und löschen
Wenn du die Zieldatei löschst oder verschiebst, bleibt ein defekter Symlink zurück. Mit find spürst du diese auf:
find /pfad/zum/verzeichnis -xtype l
Die Option -xtype l findet symbolische Links, deren Ziel nicht mehr existiert.
Nur im aktuellen Verzeichnis suchen (ohne Unterverzeichnisse):
find /pfad/zum/verzeichnis -maxdepth 1 -xtype l
Defekte Symlinks direkt löschen:
find /pfad/zum/verzeichnis -xtype l -delete
Zusammenfassung
| Methode | Befehl |
|---|---|
| Einzelner Symlink | rm symlink oder unlink symlink |
| Mehrere Symlinks | rm symlink1 symlink2 |
| Mit Bestätigung | rm -i symlink |
| Defekte Symlinks finden | find /pfad -xtype l |
| Defekte Symlinks löschen | find /pfad -xtype l -delete |
Bei Symlinks auf Verzeichnisse niemals einen Schrägstrich am Ende verwenden.