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.

Warum wird Dateiname mit Leerzeichen von Bash nicht erkannt?

Wenn Sie in Bash mehrere Wörter ohne eingeben Flucht Zeichen (\) oder ZitateEs werden alle Wörter als Argumente betrachtet. Dies gilt für alle Vorgänge, unabhängig davon, ob Sie das Verzeichnis mit „CD‘Oder versuchen, mit’ auf Dateien zuzugreifenKatze‘Befehle. Alles, was Sie schreiben, nachdem Sie diese verwendet haben, wird als Argument betrachtet. Beispielsweise:

cat file name.txt

Hinweis: Ihr Dateiname kann alles andere als für diesen Artikel verwendet werden. “Dateiname.txt" als Beispiel.

Hier 'Katze'Befehl wird berücksichtigen 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.Dateiname.txt“.

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. Halt Strg + Alt Tasten und drücken T. öffnen Terminal.
  2. Wechseln Sie nun in das Verzeichnis, in dem sich die Datei befindet.
    (du kannst auch ziehen und fallen die Datei im Terminal nach dem Befehl „Katze‘, Die automatisch Anführungszeichen in den Dateipfad / das Dateiverzeichnis setzen)

    CD-Desktop

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

    oder

    cat "Dateiname.txt"
  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. Halt Strg + Alt Tasten und drücken T. öffnen Terminal.
  2. Ändern Sie das Verzeichnis mit dem folgenden Befehl in das Verzeichnis, in dem sich die Datei befindet.
    CD-Desktop

    Hinweis: Geben Sie Ihren Standortnamen anstelle von Desktop ein.

  3. Geben Sie nun den Befehl ein und verwenden Sie Flucht Zeichen überall dort, wo im Namen Platz ist:
    Katzendatei \ name.txt

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 'vglWird den Weg als betrachten Dateiquelle wenn das Zitat insgesamt verwendet wird. Sie müssen für beide Angebote angeben Quelle und Ziel einzeln, so dass Befehle wie „vglKann richtig 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.

Facebook Twitter Google Plus Pinterest