Wie erstelle ich unter Unix eine Datei mit dem Zeichen „#“ im Namen?

Wie erstelle ich unter Unix eine Datei mit dem Zeichen „#“ im Namen?

Ich habe bereits viele Befehle zum Erstellen und Löschen einer Datei mit einem #Zeichen ausprobiert, aber es funktioniert nicht. Kann mir jemand den Befehl zum Erstellen und anschließenden Löschen einer Datei nennen, die mit beginnt #?

Antwort1

Die beiden kanonischen Möglichkeiten zum Erstellen/Löschen von Dateien mit „lustigen Zeichen“ sind

  1. Zitieren, wie Alex gezeigt hat. Sie können einfache oder doppelte Anführungszeichen verwenden, je nach Ihren Erweiterungsanforderungen. Ein Backslash kann verwendet werden, um ein einzelnes komisches Zeichen zu maskieren. Dies funktioniert, solange der Dateiname nicht wie eine Option aussieht (mit einem Bindestrich beginnt).
  2. Wenn die Datei wie eine Option aussieht,Einen Pfad voranstellen:rm ./- "./-rf ."

Moderne Versionen von Unix-Dienstprogrammen unterstützen häufig dieDoppelstrichrm -- -um das Ende von Optionen anzuzeigen. Entfernt auf solchen Systemen eine Datei mit dem Namen -.

Beachten Sie, dass Sie keine Dateien erstellen oder entfernen können, deren Name einen Schrägstrich oder ASCII NUL enthält. Wenn Sie eine solche Datei haben (ich habe sie gesehen), ist in Ihrem Dateisystem etwas schrecklich schiefgelaufen.

In Ihrem speziellen Fall mit dem Hash #rührt das Problem daher, dass die Shell ein Wort, das mit beginnt, #als Beginn einesShell-Kommentar. Eine gute Shell ermöglicht es Ihnen, diese Shell-Funktion zu deaktivieren,interaktive Kommentare:

  • zsh:unsetopt interactivecomments
  • bash:shopt -u interactive_comments

Mit diesen können Sie einfach touch #; rm #und ohne Aufwand.

Antwort2

Um zu machen...

touch "#file"

Löschen...

rm "#file"

verwandte Informationen