So behandeln Sie das Übergeben von Dateinamen mit Leerzeichen in Bash

Linux hat eine Standard-Shell Bash (auch bekannt als Bourne Again Shell), um Befehle für das System auszuführen. Die meisten Programmierer bevorzugen Bash gegenüber Cmd aufgrund der Flexibilität und des leistungsstarken Befehlszeileninterpreters, den Bash bietet. Die meisten Benutzer haben jedoch weiterhin Probleme beim Versuch, Dateinamen mit Leerzeichen in Bash zu übergeben. Dies liegt daran, dass Leerzeichen in Bash nicht mit Dateinamen identisch sind.

Dateien mit Leerzeichen im Namen

Warum wird Dateiname mit Leerzeichen von Bash nicht erkannt?

Wenn Sie in Bash mehrere Wörter ohne Escapezeichen () oder Anführungszeichen eingeben, werden alle Wörter als Argumente betrachtet. Dies gilt für alle Vorgänge, unabhängig davon, ob Sie das Verzeichnis mit ‘cd’ wechseln oder versuchen, mit ‘cat’-Befehlen auf Dateien zuzugreifen. Alles, was Sie schreiben, nachdem Sie diese verwendet haben, wird als Argument betrachtet. Beispielsweise:

cat file name.txtAusführen des Befehls ohne Verwendung von Escapezeichen oder Anführungszeichen

Hinweis: Ihr Dateiname kann alles andere als sein. Für diesen Artikel verwenden wir als Beispiel “Dateiname.txt”.

Hier betrachtet der Befehl ‘cat’ Datei und Name als zwei Argumente und nicht als ein einziges Argument. Wenn Sie jedoch Escapezeichen oder Anführungszeichen verwenden, betrachtet die Bash-Shell dies als ein einzelnes Argument, bei dem es sich um den „Dateinamen.txt“ handelt.

Dateiname mit Leerzeichen in Bash

Es gibt nur wenige Methoden, die für die Leerzeichen im Namen verwendet werden können. Die beste Vorgehensweise besteht darin, in Zukunft Leerzeichen für Dateinamen zu vermeiden. Eine einfache Methode besteht darin, die Datei, auf die Sie zugreifen möchten, umzubenennen und Leerzeichen zu entfernen. Einige andere Methoden verwenden einfache oder doppelte Anführungszeichen für den Dateinamen mit Leerzeichen oder das Escape-Symbol () direkt vor dem Leerzeichen. Wir werden Methoden mit angewandten Beispielen bereitstellen, um Ihnen zu zeigen, wie es funktioniert.

Methode 1: Verwenden von einfachen und doppelten Anführungszeichen

  1. Halten Sie die Tasten Strg + Alt gedrückt und drücken Sie T, um das Terminal zu öffnen.
  2. Wechseln Sie nun in das Verzeichnis, in dem sich die Datei befindet.
    (Sie können die Datei auch nach dem Befehl ‘cat’ in das Terminal ziehen und dort ablegen, wodurch automatisch Anführungszeichen in den Dateipfad / das Dateiverzeichnis eingefügt werden.) cd DesktopVerzeichnis wechselnHinweis: Der Desktop kann an den Speicherort geändert werden, auf den Sie zugreifen möchten.

  3. Geben Sie den folgenden Befehl ein, um eine Textdatei mit Leerzeichen im Namen zu lesen: cat ‘file name.txt’

    oder

    cat “Dateiname.txt”Verwenden von Anführungszeichen, um Leerzeichen im Namensfehler zu vermeiden

  4. Einfache und doppelte Anführungszeichen führen zu demselben Ergebnis. In einigen Fällen müssen Sie beide ausprobieren und sehen, welche funktioniert.

Methode 2: Verwenden des Backlash Escape-Zeichens

  1. Halten Sie die Tasten Strg + Alt gedrückt und drücken Sie T, um das Terminal zu öffnen.
  2. Ändern Sie das Verzeichnis in den Speicherort der Datei, indem Sie den folgenden Befehl verwenden: cd Desktop

    Hinweis: Geben Sie Ihren Standortnamen anstelle von Desktop ein.

  3. Geben Sie nun den Befehl ein und verwenden Sie das Escape-Zeichen überall dort, wo im Namen Platz ist: cat file name.txtVerwenden von Escapezeichen, um Leerzeichenfehler zu vermeiden

Bonus: Verwendung von Zitaten und Flucht

Wenn Sie das Verzeichnis im Befehl verwenden, kann dies manchmal Konsequenzen für die Verwendung von Anführungszeichen im Gesamtpfad haben. Dies liegt daran, dass einige Befehle wie ‘mv’ oder ‘cp’ den Pfad als Dateiquelle betrachten, wenn das Anführungszeichen insgesamt verwendet wird. Sie müssen Angebote für Quelle und Ziel einzeln angeben, damit Befehle wie ‘cp’ ordnungsgemäß funktionieren. Sie können auch das folgende Beispiel überprüfen, das Ihnen zeigt, dass die Verwendung von Escape-Zeichen für den Pfad viel komplexer ist und Benutzer Fehler damit machen können.

Der Unterschied zwischen Zitaten und Escape-Zeichen

Similar Posts

One Comment

  1. Suche eine gute Idee für chgrp zu Gruppennamen mit Leerzeichen. Ist leider an einem AD angebunden.
    Meine Lösung ist chgrp –reference=MeineDatei, aber gibt es eine Möglichkeit bei chgrp das Leerzeichen zu maskieren?

Leave a Reply

Your email address will not be published. Required fields are marked *