# this works:
rm foo
# versus this, which doesn't:
rm foo/
Grundsätzlich müssen Sie ihm sagen, dass es eine Datei löschen soll , kein Verzeichnis löschen . Ich glaube, der Unterschied zwischen rm
und rmdir
existiert aufgrund von Unterschieden in der Art und Weise, wie die C-Bibliothek sie behandelt.
Auf jeden Fall sollte das erste funktionieren, während das zweite sich darüber beschweren sollte, dass foo ein Verzeichnis ist.
Wenn es nicht wie oben funktioniert, überprüfen Sie Ihre Berechtigungen. Sie benötigen Schreibrechte für das enthaltende Verzeichnis, um Dateien zu entfernen.
Verwenden Sie den Befehl „Unlink“ und stellen Sie sicher, dass nicht das / am Ende haben
$ unlink mySymLink
unlink() löscht einen Namen aus dem Dateisystem. Wenn dieser Name der letzte Link zu einer Datei war und kein Prozess die Datei geöffnet hat, wird die Datei gelöscht und der Speicherplatz, den sie verwendet hat, wird zur Wiederverwendung verfügbar gemacht. Wenn der Name der letzte Link zu einer Datei war, aber irgendwelche Prozesse die Datei noch geöffnet haben, bleibt die Datei bestehen, bis der letzte darauf verweisende Dateideskriptor geschlossen wird.
Ich denke, das könnte problematisch sein, wenn ich es richtig lese.
Wenn der Name auf einen symbolischen Link verweist, wird der Link entfernt.
Wenn sich der Name auf einen Socket, Fifo oder ein Gerät bezieht, wird der Name dafür entfernt, aber Prozesse, die das Objekt geöffnet haben, können es weiterhin verwenden.
https://linux.die.net/man/2/unlink