Übergeben von Dateinamen mit Leerzeichen in Bash behandeln

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. Bei den meisten Benutzern treten jedoch weiterhin Probleme auf, wenn versucht wird, Dateinamen mit Leerzeichen in bash zu übergeben. Dies liegt daran, dass Leerzeichen in bash nicht mit denen in Dateinamen identisch sind.

Dateien mit Leerzeichen im Namen

Warum wird der Dateiname mit Leerzeichen nicht von Bash 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 gewertet. Zum Beispiel:

 Katzendateiname.txt 

Ausführen des Befehls ohne Verwendung von Escapezeichen oder Anführungszeichen

Hinweis : Ihr Dateiname kann beliebig sein. In diesem Artikel wird als Beispiel " Dateiname.txt " verwendet.

Der Befehl ' cat ' betrachtet Datei und Name als zwei Argumente und nicht als ein einziges Argument. Wenn Sie jedoch Escape-Zeichen oder Anführungszeichen verwenden, betrachtet die Bash-Shell dies als ein einziges Argument, nämlich als „ Dateiname.txt “.

Dateiname mit Leerzeichen in Bash

Es gibt nur wenige Methoden, die für die Leerzeichen im Namen verwendet werden können. Es wird empfohlen, 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 zur Verfügung stellen, um Ihnen zu zeigen, wie es funktioniert.

Methode 1: Verwenden von einfachen und doppelten Anführungszeichen

  1. Halten Sie 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-Desktop 

    Verzeichnis wechseln

    Hinweis : 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:
     Katze 'Dateiname.txt' 

    oder

     Katze "Dateiname.txt" 

    Verwenden von Anführungszeichen, um Leerzeichen in Namensfehlern zu vermeiden
  4. Einzelne und doppelte Anführungszeichen ergeben dasselbe. In einigen Fällen müssen Sie beide ausprobieren, um festzustellen, welche funktioniert.

Methode 2: Verwenden von Backlash Escape Character

  1. Halten Sie Strg + Alt gedrückt und drücken Sie T, um das Terminal zu öffnen.
  2. Wechseln Sie mit dem folgenden Befehl in das Verzeichnis, in dem sich die Datei befindet.
     CD-Desktop 

    Hinweis : Geben Sie anstelle von Desktop den Namen Ihres Standorts ein.

  3. Geben Sie nun den Befehl ein und verwenden Sie das Escape- Zeichen an einer beliebigen Stelle im Namen:
     Katzendatei \ name.txt 

    Verwenden des Escapezeichens, um Leerzeichenfehler zu vermeiden

Bonus: Verwendung von Zitaten und Escape

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

Der Unterschied zwischen Anführungszeichen und Escape-Zeichen

Interessante Artikel