Ich habe eine symbolische Verbindung mit folgendem Befehl hergestellt:
ln -s ../test5
Ich möchte es jetzt entfernen, aber mein rm schlägt fehl:
$ rm -Rf test5/
rm: cannot remove `test5/': Not a directory
$ rm test5/
rm: cannot remove directory `test5/': Is a directory
$ rmdir test5/
rmdir: test5/: Not a directory
$rm -r test5/
rm: cannot remove `test5/': Not a directory
$ls -l
0 lrwxrwxrwx 1 peter peter 8 Jul 20 15:30 test5 -> ../test5/
Wie kann ich meinen symbolischen Link entfernen? (Ubuntu 8.10, Bash)
linux
bash
symbolic-link
Peter Smit
quelle
quelle
rm -r link/
Löscht den Inhalt des ZielsAntworten:
Entfernen Sie den abschließenden Schrägstrich:
Mit Aufforderung:
Ohne Aufforderung:
quelle
permission denied
.test5/
also falsch.Probieren Sie es aus
rm test5
(ohne den Übungsstrich).
Der Schrägstrich zeigt an, dass 'test5' ein Verzeichnis ist, während es sich tatsächlich um eine Datei handelt, die mit einem Verzeichnis verknüpft ist .
quelle
Sie können den folgenden Schrägstrich entfernen:
Dadurch wird die Datei (dh der Symlink) entfernt.
Alternativ können Sie die Verknüpfung aufheben:
Auch hier müssen Sie den abschließenden Schrägstrich weglassen, da Sie versuchen, die Verknüpfung des Symlinks und nicht des Verzeichnisses aufzuheben.
quelle
Wenn Sie die automatische Vervollständigung verwenden, um den zu löschenden Link zu benennen, wird möglicherweise kein abschließender Schrägstrich angezeigt, der jedoch zur Hälfte vorhanden ist. Dieser unsichtbare Schrägstrich gibt beim Entfernen des Links immer noch den Löschfehler aus.
Geben Sie in diesem Fall Zeichen für Zeichen den zu löschenden Link als "test5" ein, wie z.
rm test5
.quelle
Das Problem im OP ist das Trailing
/
, alsotest5/
wirft es einen Fehler,test5
funktioniert aber .Ich ziehe es zu verwenden ,
unlink
anstattrm
wie meine Absicht ist klarer , und es gibt keine Möglichkeit , versehentlich das reale Verzeichnis anstelle des Link zu entfernen. Stellen Sie sicher, dass/
nach dem Verzeichnisnamen keine Nachkommastellen stehen , zB:quelle
Ich fühle mich albern gefragt, aber hast du es versucht
rm -r
? Da es sich um eine symbolische Verknüpfung handelt, sollte das Ziel nicht gelöscht werden.Edit: Habe es gerade ausprobiert, es ist richtig
Edit 2: rmdir sagt in der ersten Zeile der Manpage, dass leere Verzeichnisse gelöscht werden. Ich würde denken, weil es ein Link ist, bei dem das Verzeichnisbit auf seine Dateieigenschaften überprüft wurde, aber weil rmdir nicht den Verdacht hat, dass es Fehler ausspuckt. Verwenden Sie einfach rm -r
quelle