Dateiname beginnt mit *\*

Dateiname beginnt mit *\*

Ich habe eine seltsame Datei in meinem Home-Verzeichnis mit dem Namen \e[m. Ich verwende Linux. Wie kann ich sie löschen, da ich es versucht habe rm, aber es heißt no such file or directory found?

Antwort1

Wenn keine der anderen hier geposteten Antworten funktioniert, können Sie immer versuchen, eine Datei basierend auf ihrem Inode zu entfernen.

Das zu tun:

  1. Suchen Sie den Inode der Datei, indem Sie Folgendes tun ls -i. Nehmen wir an, die Inode-Nummer lautet 123456für \e[m.
  2. Löschen Sie die Datei basierend auf ihrer Inode-Nummer: Führen Sie entweder find -inum 123456 -deleteoder aus find -inum 123456 -exec rm {} \;.

Antwort2

Ehrlich gesagt wäre es am einfachsten, einen Dateimanager zu verwenden, der jegliches Shell-Globing umgeht.

Bei Verwendung einer Shell würde ich versuchen, das Shell-Vervollständigungssystem zu verwenden (vorausgesetzt, Sie verwenden eine Shell mit einem solchen System). rm [TAB]Wenn Ihre Shell Ihnen beispielsweise ein Menü anzeigt und Sie aus dem Menü auswählen oder es durchgehen können, sollten Sie eine Vervollständigung erhalten, die eine Textdarstellung ist, die Ihre Shell erkennt.

Antwort3

Mögliche Wege:

rm \\e\[m

oder

rm '\e[m'

oder

rm "\\e[m"

Antwort4

Sie können die Glob-Erweiterung verwenden. Versuchen Sie es ls *[[]m, und wenn dadurch nur diese Datei zurückgegeben wird, können Sie es bedenkenlos tun rm *[[]m.

Wenn die fehlerhafte Datei mit dem obigen Befehl nicht aufgeführt wird ls, enthält sie mit Sicherheit ein Escapezeichen und das „m“ ist kein wörtliches „m“ (und/oder das [ist kein wörtliches [„).

verwandte Informationen