Irgendwann habe ich etwas Verrücktes gemacht, das eine Datei -rf
auf meinem Dateisystem erstellt hat.
Jetzt kann ich nicht herausfinden, wie man es löscht ...
Ich habe es versucht:
rm "-rf"
rm \-rf
Diese gehen einfach sofort raus , arrgh!
Weiß jemand, wie man diese Datei entfernt? Am liebsten ohne versehentlich meinen ganzen Ordner auszuräumen.
rm
eine Datei-rf
aus Ihrem System aufzurufen, ohne sich an die genaue Syntax zu erinnern!rm
(in it'sargc
andargv
) übergeben. Beide führen dazu, dass das Array["rm", "-rf"]
an übergebenrm
wird. was macht was man erwarten würde.*
in einen Ordner zu bekommen. Geben Sie auch einen Namen-rf
an und sehen Sie sich den Spaß an ;-)mkdir './-rf '
(ls --classify, ein üblicher Standardwert in einem Shell-Alias, fügt ein / hinzu.)Antworten:
Oder
quelle
getopt
hat--
, die die meisten modernen Linux - Tools bedeuten sollte.Andere Option:
... unter der Annahme, dass sich in Ihrem aktuellen Verzeichnis die Datei befindet.
quelle
Alternativ können Sie das Verzeichnis, in dem es sich befindet, jederzeit bearbeiten und die Datei auf diese Weise entfernen.
und dann löschen Sie einfach die Zeile mit der Datei darauf (mit D, dd wird nicht funktionieren).
quelle
vim
sich um einen Dired-Modus handelte. Es ist klar, dass das Bearbeiten des eigentlichen Verzeichnisses in einem Texteditor weder empfohlen noch möglich ist, ohne dass ein echtes Experten-Hoop-Jumping erforderlich ist. Beachten Sie, dassemacs
dies auch aus demselben Grund funktionieren würde.Eine generische Technik zum Löschen seltsamer Dateinamen ist die Verwendung.
um die Inode-Nummer der Datei zu finden und dann zu verwenden.
Sie müssen sich nicht an alle Sonderfälle erinnern.
quelle
find
Dateien löschen kann.Obwohl ich den "rm - -filename" - Trick kenne, starte ich einen GUI-Dateimanager und tue dies von dort aus, um die Chance auszuschließen, wenn ich irgendwie eine Datei mit einem führenden Namen bekomme, den ich entfernen möchte von Fehlern.
quelle
Wenn Sie nur sicher sein wollen:
quelle
Nur für den Fall, dass Sie sich auf einem Nicht-GNU-Unix befinden und sich in die Steinzeit zurückversetzt fühlen (keine
--
Syntax, kein-inum
Schalter zum Finden, kein Befehl zum Aufheben der Verknüpfung , Ihr Editor lehnt das Bearbeiten von Verzeichnissen usw. usw. ab), können Sie sich trotzdem selbst helfen:Dies führt dazu, dass find alle potenziellen Kandidaten an rm weiterleitet, die wiederum für jede einzelne Datei, die es weiterleitet, um Erlaubnis / Verweigerung bitten.
Falls Sie
rm
den-i
Switch nicht einmal unterstützen (HP-UX 10.2 unter PA-RISC 1.1?), Gehen Sie vorsichtiger vor:quelle
find
?Unterstützung von jleedev Antwort , würde ich verbessern mit:
Um im interaktiven Modus zu sein und um Bestätigung zu bitten, können Sie wirklich sicher sein, was Sie löschen. (obwohl die Lösung in Ordnung ist. Es ist einfach für Ihre Seelenruhe)
Verwenden Sie sogar Folgendes:
um sicherzustellen, dass Sie keine Aliase verwenden.
quelle
Wie bereits vorgeschlagen, habe ich immer die Syntax verwendet
Als ich eine Datei mit einem Bindestrich als Präfix entfernen musste, weil das - dem Befehl sagt, dass es nicht nach anderen Parametern sucht, sondern nur nach Dateinamen.
Um meinen wichtigen Ordner durch versehentliches Löschen von Dateien zu schützen, habe ich eine leere Datei mit dem Namen "simply -i" erstellt, die normalerweise beim Auflösen der * -Suche ganz oben in der Dateiliste steht. Also der Befehl
Wenn der Ausdruck in meinem geschützten Ordner während der Ausführung explodiert wird, geben Sie den folgenden Befehl ein:
Anstatt alles sofort zu löschen, fordert die Shell keine Bestätigung mehr an (wie bei der Option -i erforderlich).
quelle
-i
Dateinamen Hack - "Ich" war skeptisch, aber es testet!Als ich das letzte Mal dieses Problem hatte, löste ich es mit:
Python
import os
os.remove ("- rf")
quelle
Martin Clayton hat recht.
Es ist sehr einfach und logisch. Wenn die Optionen existieren , ist es immer
-XXX
noch--CCCC
so , wenn Sie ein setzen./
oder der vollständige Pfad-rf
nicht als Option in Betracht gezogen wird und werden als normaler String betrachtet werden.Es funktioniert mit "allen" seltsamen Dateinamen.
quelle
rm - -rf Die meisten Gnu-Tools akzeptieren - als Markierung für das Ende der Optionen
quelle