Wie kann ich eine symbolische Linkschleife unterbrechen?

14707
Evan Kroske

Während ich versuchte, eine gemeinsam genutzte C-Objektbibliothek zu kompilieren, habe ich versehentlich zwei symbolische Links erstellt, die auf einander zeigen. Gibt es eine Möglichkeit, sie loszuwerden, ohne das gesamte Verzeichnis zu löschen? Ich habe gelesen, dass der einzige Weg, einen symbolischen Link zu brechen, darin besteht, die Datei zu löschen, auf die er verweist, aber ich bin sicher, dass es einen anderen Weg geben muss. Danke für die Hilfe.

7
Dann lösche die Datei po ... oh Gott. Wie hast du das geschafft? : P Phoshi vor 14 Jahren 4
Es ist leicht zu machen und noch einfacher zu beheben. Simlinks verweisen auf einen Dateinamen, und der Zieldateiname muss nicht einmal existieren. Und rm entfernt den Simlink, nicht die Datei, auf die er verweist. Justin Smith vor 14 Jahren 2

3 Antworten auf die Frage

14
Mark Borgerding

Es ist kein Problem, symbolische Links zu löschen. Ich bin nicht sicher, warum Sie denken, dass Sie die Datei löschen müssen, auf die der Link verweist.

Löschen Sie sie einfach. Versuche dies:

ln -s thing1 thing2 # thing1 does not exist ln -s thing2 thing1 # circular reference rm thing1 thing2 # no problem 
5
Evan Kroske

Trotzdem kann ich beide Links gleichzeitig löschen rm. Warum hat jemand gesagt, ich muss die Zieldatei löschen ...

"unlink" ist noch schöner als "rm", um Links sicher zu entfernen. ℝaphink vor 14 Jahren 1
Sie hätten sogar einfach einen der Simlinks gelöscht und den anderen verlassen können - wenn Sie einen Grund hatten. Justin Smith vor 14 Jahren 1
3
Mr. Shiny and New 安宇

Wenn Sie einen symbolischen Link in Linux löschen, wird der Link und nicht die Zieldatei gelöscht.