Ich habe ein Programm geschrieben, das die POSIX-Memory-Mapping-Funktion verwendet ( mmap
)
Das Programm nimmt eine Datei ( a.dat
) und ordnet sie zum Lesen / Schreiben zu.
Aufgrund von Programmfehlern wird jedes Mal, wenn ich das Programm starte, eine Datei mit seltsamen Namen (z. B. ?d?P?^z??d?P?^z?
) erstellt. Der Fehler ist behoben, aber ich kann die Dateien nicht löschen.
Ich kann es weder über die Befehlszeile noch durch Auswählen / Löschen im Fenstermanager löschen.
Wie soll ich es also löschen? Ich benutze Ubuntu 11.04.
rm '?d?P?^z??d?P?^z?'
). Hast du das versucht?rm *
innerhalb des Ordners.Antworten:
rm -i -- *
werden Sie aufgefordert, jede Datei zu löschen. Sie können und sollten '*' in eine engere Übereinstimmung ändern, wenn viele Dateien vorhanden sind. Die--
Verarbeitungsoptionen werden gestoppt, sodass eine Datei mit dem Namen-d
vonrm
erfolgreich entfernt wird .Ich habe das in der Vergangenheit benutzt und es funktioniert so lange, bis Sie einen Sonderzeichen oder 2 treffen, die es nicht mag.
quelle
rm
, können Sie Folgendes tun:rm -i -- *
The--
weist einige Versionen von rm darauf hin, dass nach--
und keine Befehlszeilenschalter mehr vorhanden sind , um weitere Argumente als Dateinamen zu behandeln.--
imrm
Befehl.Mit können Sie
ls -li
alle Dateien nach Inode anzeigen. Führen Sie dann diesen Befehl aus, um die Datei zu entfernen:Ich
-maxdepth 1
habe meinen Fund nur aus Sicherheitsgründen ergänzt:quelle
ls -i
ist es gut genug.ls
löscht keine Dateien. OP will das.ls -li
alle Dateien nach Inode anzeigen." Ich weise darauf hin, dass diesls -i
ausreicht, um eine Liste der Dateinamen und der entsprechenden Inode-Nummern zu erhalten. (Aber natürlich brauchen Sie,ls -ia
wenn Sie Punktedateien einbinden möchten.)-delete
Option einfach an zu übergebenfind
, um die Verwendung des falschen Dateinamens zu minimieren.