Ich habe einen symbolischen Link, ~/Desktop/test.txt
der darauf verweist ~/rendu/test.txt
.
Ich kenne NUR den Pfad von ~/Desktop/test.txt
, ich möchte einen schnellen Weg zum Löschen, ~/rendu/test.txt
OHNE den symbolischen Link zu löschen .
Für diejenigen, die wissen wollen warum: Ich habe eine Datei mit dem Namen crypted.xxx
auf meinem Desktop, die verschlüsselt ist und mein Passwort enthält.
Wenn ich meine verschlüsselte Datei aktualisieren möchte, entschlüssele ich sie und erstelle sie crypted.txt
in einem speziellen Verzeichnis. Aus praktischen Gründen stelle ich einen Link zu dieser Datei auf meinem Desktop her. Aber nachdem crypted.txt
ich mir meine angesehen habe , möchte ich diese schnell löschen crypted.txt
(aber nicht den Link auf dem Desktop).
quelle
Antworten:
Verwenden Sie
find
, um den Symlink zu finden, und verwenden Sie dannreadlink
, um den vollständigen Pfad zum Ziel zu erhalten, umrm
:Oder wie Sie den Linknamen bereits kennen:
quelle
rm
Befehl interpretiert ihn jedoch als relativ zum aktuellen Verzeichnis der Shell. Daher besteht für diesen Befehl die Möglichkeit, eine andere Datei zu löschen, auf die der symbolische Link verweist.-f
-e
oder-m
der vollständige Pfad wird zurückgegeben, auch wenn der Zielsymlink auf einen relativen Pfad verweist. Ja, das ist ein Problemrm "$(readlink ~/Desktop/test.txt)"
, aber nicht, wenn-f
-e
oder verwendet wird-m
.readlink -f
(funktioniert aber auch, wenn das Ziel selbst kein Link ist).Verwenden Sie einfach:
um die Datei zu löschen , oder
um die Datei zu entfernen .
quelle