Ein symbolischer Link, auch Symlink genannt, ist ein spezieller Dateityp, der auf eine andere Datei oder ein anderes Verzeichnis verweist. Es ist so etwas wie eine Verknüpfung in Windows. Ein Symlink kann auf eine Datei oder ein Verzeichnis auf demselben oder einem anderen Dateisystem oder einer anderen Partition verweisen.
In dieser Anleitung zeigen wir Ihnen, wie Sie symbolische Links in Linux/UNIX-Systemen mit dem rm
entfernen (löschen). , unlink
, und find
Befehle.
Bevor Sie beginnen #
Um einen Symlink zu entfernen, benötigen Sie Schreibrechte für das Verzeichnis, das den Symlink enthält. Andernfalls erhalten Sie die Fehlermeldung „Vorgang nicht zulässig“.
Wenn Sie einen Symlink entfernen, ist die Datei, auf die er verweist, nicht betroffen.
Verwenden Sie ls -l
Befehl, um zu überprüfen, ob eine bestimmte Datei ein symbolischer Link ist, und um die Datei oder das Verzeichnis zu finden, auf das der symbolische Link zeigt.
ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7
Das erste Zeichen „l“ zeigt an, dass es sich bei der Datei um einen Symlink handelt. Das Symbol „->“ zeigt die Datei an, auf die der Symlink zeigt.
Symbolische Links mit rm
entfernen #
Der rm
Befehl entfernt bestimmte Dateien und Verzeichnisse.
Um einen Symlink zu löschen, rufen Sie rm
auf Befehl gefolgt vom Namen des symbolischen Links als Argument:
rm symlink_name
Bei Erfolg wird der Befehl mit Null beendet und zeigt keine Ausgabe an.
Mit rm
Sie können mehrere symbolische Links gleichzeitig löschen. Übergeben Sie dazu die Namen der symbolischen Links als Argumente, getrennt durch Leerzeichen:
rm symlink1 symlink2
Um vor dem Entfernen des Symlinks aufgefordert zu werden, verwenden Sie -i
Möglichkeit:
rm -i symlink_name
Geben Sie zur Bestätigung y
ein und drücken Sie Enter
.
rm: remove symbolic link 'symlink_name'?
Wenn der symbolische Link auf ein Verzeichnis zeigt, hängen Sie /
nicht an abschließender Schrägstrich am Ende. Andernfalls erhalten Sie einen Fehler:
rm symlink_to_dir/
rm: cannot remove 'symlink_to_dir/': Is a directory
Wenn der Name des Arguments mit /
endet , der rm
Der Befehl geht davon aus, dass die Datei ein Verzeichnis ist. Der Fehler tritt auf, weil bei Verwendung ohne -d
oder -r
Option rm
Verzeichnisse können nicht gelöscht werden.
Sicherheitshalber niemals -r
Option beim Entfernen symbolischer Links mit rm
. Wenn Sie beispielsweise Folgendes eingeben:
rm -f symlink_to_dir/
Der Inhalt des Zielverzeichnisses wird gelöscht.
Symbolische Links mit unlink
entfernen #
Das unlink
Befehl löscht eine bestimmte Datei. Im Gegensatz zu rm
, unlink
akzeptiert nur ein einziges Argument.
Um einen symbolischen Link zu löschen, führen Sie unlink
aus Befehl gefolgt vom Symlink-Namen als Argument:
unlink symlink_name
Wenn der Befehl erfolgreich ausgeführt wird, zeigt er keine Ausgabe an.
Hängen Sie /
nicht an abschließender Schrägstrich am Ende des Symlink-Namens, weil unlink
Verzeichnisse können nicht entfernt werden.
Suchen und löschen Sie defekte symbolische Links #
Wenn Sie die Quelldatei löschen oder an einen anderen Speicherort verschieben, bleibt die symbolische Datei hängen (defekt).
Führen Sie den folgenden Befehl aus, um alle defekten symbolischen Links in einem bestimmten Verzeichnis zu finden:
find /path/to/directory -xtype l
/path/to/directory/symlink1
/path/to/directory/subdir/symlink2
Der Befehl listet alle defekten Links unter dem Verzeichnis und seinen Unterverzeichnissen auf.
Wenn Sie die in den Unterverzeichnissen enthaltenen Symlinks ausschließen möchten, übergeben Sie -maxdepth 1
Option zum find
:
find /path/to/directory -maxdepth 1 -xtype l
/path/to/directory/symlink1
Sobald Sie die defekten Symlinks gefunden haben, können Sie sie entweder manuell mit rm
entfernen oder unlink
oder verwenden Sie das -delete
Option des find
Befehl:
find /path/to/directory -xtype l -delete
Schlussfolgerung #
Um einen symbolischen Link zu entfernen, verwenden Sie entweder den rm
oder unlink
Befehl gefolgt vom Namen des Symlinks als Argument. Wenn Sie einen symbolischen Link entfernen, der auf ein Verzeichnis verweist, hängen Sie keinen abschließenden Schrägstrich an den Namen des symbolischen Links an.
Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.