Ich habe ein Python-Skript ausgeführt, das eine Fehlfunktion aufwies und sudo
zum Erstellen einer Datei mit dem Namen verwendet wurde >
.
Wie kann ich diese Datei entfernen?
Wenn ich es versuche sudo rm >
, erhalte ich natürlich den Fehler bash: syntax error near unexpected token 'newline'
, weil es den Anschein hat , als würde ich versuchen , die Ausgabe von umzuleiten rm
.
Seine Berechtigungen sind -rw-r--r--
.
sudo touch >
würde bei einer Shell derselbe Fehler auftreten.) Sie sagten, es handele sich um ein Python-Skript, das vermutlich durch Übergabe">"
an eineos
Funktion erstellt wurde. Sollte also gutsudo python <<< 'import os; os.remove(">")'
funktionieren.Antworten:
All dies sollte funktionieren:
Beachten Sie, dass die letzten beiden Befehle, diejenigen mit
find
, finden Sie alle Dateien oder Verzeichnisse mit dem Namen>
im aktuellen Ordner und alle seine Unterordner. Um dies zu vermeiden, benutze GNU find:quelle
find
nicht der Fall ist,rm
da es rekursiv ist und jede Dateirm
in Ihrem aktuellen Verzeichnisbaum löscht, egal wie tief sie ist.rm
Varianten) sind alle gleich. Es gibt nur drei verschiedene Möglichkeiten, diesen Dateinamen vor der Shell zu schützen. Es gibt eigentlich keinen Grund, einen anderen vorzuziehen.find(1)
? Das einzige Problem hierbei ist, dass ein Shell-Metazeichen in Anführungszeichen gesetzt werden muss. Es gibt eine Million verschiedener Programme, die eine Datei entfernen können, aber alles andere verwenden, alsrm(1)
nur die Antwort zu verschleiern.sudo find . ! -name . -prune -name '>' -exec rm {} +
.find
nichts hinzu, um die gestellte Frage zu beantworten.Sie können es auch mit Python entfernen:
Mit POSIX
find
:quelle
>
als Ausgabeumleitung zu vermeiden .Was ich anfänglich gemacht habe, funktioniert auch:
Dies ist natürlich eine Variante des Einfacheren
sudo rm \>
.quelle
Ich habe dies als Kommentar versucht, aber es kam alles in einer Zeile heraus
quelle
Zitiere das Zeichen so, dass es von der Shell nicht als Umleitung interpretiert wird:
Wenn Sie jedoch andere Dateien mit seltsamen Zeichen haben, ist es am sichersten, einen GUI-Datei-Explorer wie diesen zu öffnen
nautilus
und dort zu löschen.quelle