Android

So entfernen (löschen) Sie symbolische Links unter Linux

Linux Tutorial for Beginners: Introduction to Linux Operating System

Linux Tutorial for Beginners: Introduction to Linux Operating System

Inhaltsverzeichnis:

Anonim

Eine symbolische Verknüpfung, auch als Symlink bezeichnet, ist ein besonderer 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 Partition verweisen.

In diesem Handbuch zeigen wir Ihnen, wie Sie symbolische Links in Linux / UNIX-Systemen mit den Befehlen rm , unlink und find entfernen (löschen).

Bevor Sie beginnen

Um einen Symlink zu entfernen, benötigen Sie Schreibrechte für das Verzeichnis, das den Symlink enthält. Andernfalls wird der Fehler "Vorgang nicht zulässig" angezeigt.

Wenn Sie einen Symlink entfernen, ist die Datei, auf die er verweist, nicht betroffen.

Verwenden Sie den Befehl ls -l um zu überprüfen, ob es sich bei einer bestimmten Datei um eine symbolische Verknüpfung handelt, und um die Datei oder das Verzeichnis zu finden, auf die bzw. das die symbolische Verknüpfung verweist.

ls -l /usr/bin/python

lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7

Das erste Zeichen "l" gibt an, dass es sich bei der Datei um einen Symlink handelt. Das Symbol "->" zeigt die Datei, auf die der Symlink verweist.

Entfernen Sie symbolische Links mit rm

Der Befehl rm entfernt angegebene Dateien und Verzeichnisse.

Um einen Symlink zu löschen, rufen Sie den Befehl rm gefolgt vom symbolischen Linknamen als Argument auf:

rm symlink_name

Bei Erfolg wird der Befehl mit Null beendet und keine Ausgabe angezeigt.

Mit rm Sie mehrere symbolische Links gleichzeitig löschen. Übergeben Sie dazu die Namen der Symlinks als durch Leerzeichen getrennte Argumente:

rm symlink1 symlink2

Verwenden Sie die Option -i um vor dem Entfernen des Symlinks dazu aufgefordert zu werden:

rm -i symlink_name

Enter zur Bestätigung y und drücken Sie die Enter .

rm: remove symbolic link 'symlink_name'?

Wenn der symbolische Link auf ein Verzeichnis verweist, fügen Sie am Ende nicht den Schrägstrich / . Andernfalls erhalten Sie eine Fehlermeldung:

rm symlink_to_dir/

rm: cannot remove 'symlink_to_dir/': Is a directory

Wenn der Name des Arguments mit / endet, geht der Befehl rm davon aus, dass die Datei ein Verzeichnis ist. Der Fehler tritt auf, weil rm bei Verwendung ohne die Option -d oder -r keine Verzeichnisse löschen kann.

Um auf der sicheren Seite zu sein, -r niemals -r wenn Sie symbolische Links mit rm entfernen. Wenn Sie beispielsweise Folgendes eingeben:

rm -f symlink_to_dir/

Der Inhalt des Zielverzeichnisses wird gelöscht.

Entfernen Sie symbolische Links mit unlink

Der unlink Befehl löscht eine bestimmte Datei. Im Gegensatz zu rm akzeptiert unlink nur ein einziges Argument.

Um einen symbolischen Link zu löschen, führen Sie den Befehl unlink gefolgt vom Namen des Symlinks als Argument aus:

unlink symlink_name

Wenn der Befehl erfolgreich ausgeführt wird, wird keine Ausgabe angezeigt.

Fügen Sie den Schrägstrich / nicht am Ende des Symlink-Namens an, da unlink keine Verzeichnisse entfernen kann.

Unterbrochene symbolische Links suchen und löschen

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.

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 die -delete oder die Option -delete des Befehls find :

find /path/to/directory -xtype l -delete

Fazit

Verwenden Sie zum Entfernen einer symbolischen Verknüpfung den Befehl rm oder unlink gefolgt vom Namen der symbolischen Verknüpfung als Argument. Fügen Sie beim Entfernen eines symbolischen Links, der auf ein Verzeichnis verweist, keinen abschließenden Schrägstrich an den Namen des Symlinks an.

rm unlink find terminal