GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So gehen Sie Dateinamen mit Leerzeichen in Linux an

Das Einzige, was Sie bemerken werden, ist, dass Dateien unter Linux normalerweise keine Namen enthalten. Ihr Lehrer oder Kollege verwendet Unterstriche anstelle von Leerzeichen in Datei- und Verzeichnisnamen.

Es ist nicht so, dass Sie im Linux-Terminal keine Leerzeichen in Dateinamen verwenden können. Es verursacht nur zusätzliche Schmerzen und deshalb sollten Sie es nach Möglichkeit vermeiden.

Wieso den? Lassen Sie mich das an Beispielen zeigen. Sie kennen die generische Syntax für Linux-Befehle:

command [options] argument1 argument2

Hier werden die Argumente durch Leerzeichen getrennt. Wenn Sie versuchen, Dateinamen mit Leerzeichen direkt zu verwenden, werden sie als separate Argumente behandelt und nicht nur als ein Argument.

Im obigen Screenshot, wenn ich versuche, cat agatha books zu verwenden Befehl, versteht es agatha books nicht ist ein einziges Argument. Es behandelt agatha und books als unterschiedliche Dateinamen.

Wie gehen Sie dann mit Leerzeichen im Dateinamen um? Es gibt zwei Möglichkeiten:

Schließen Sie den gesamten Dateinamen in Anführungszeichen ein:

"file name withn spaces"

Escape jedes Leerzeichen mit der Backslash-Taste:

file\ name\ with\ spaces

Ich werde es im Detail zeigen.

Tab-Vervollständigung funktioniert oft auch mit Leerzeichen. Ihr Terminal zeigt möglicherweise den Dateinamen mit Leerzeichen und einem Backslash an, wenn Sie die Tabulatortaste für den Dateinamen drücken.

Lesen Sie eine Datei mit Leerzeichen im Dateinamen

Um einen Dateinamen mit Leerzeichen zu verwenden, können Sie ihn wie folgt in Anführungszeichen setzen:

cat "file name with spaces"

Sie können auch jedes Leerzeichen mit einem Backslash maskieren, aber es ist arbeitsintensiver und verwirrender als die vorherige Methode:

cat file\ name\ with\ spaces

Grundsätzlich setzen Sie einen \ vor jedem Leerzeichen im Dateinamen.

Sie können auch einfache Anführungszeichen anstelle von doppelten Anführungszeichen verwenden.

cat 'file name with spaces'
Einfache Anführungszeichen ignorieren Sonderzeichen. Doppelte Anführungszeichen ignorieren alle außer $, umgekehrte Anführungszeichen und Schrägstriche. Mehr dazu in einem anderen Tutorial.

Erstelle eine Datei mit Leerzeichen im Dateinamen

Jetzt müssen Sie im Terminal ein Leerzeichen eingeben, um den Dateinamen hier zu erstellen. Verwenden Sie wieder Backslash oder Anführungszeichen.

Ähnlich wie im vorherigen Abschnitt können Sie neue Dateien mit Leerzeichen im Dateinamen erstellen, indem Sie Anführungszeichen verwenden:

touch "file name with spaces"

Oder auch der Backslash:

touch file\ name\ with\ spaces

Umgang mit Speicherplatz im Ordnernamen

Sie können ein Verzeichnis mit Leerzeichen im Namen genauso erstellen wie eine Datei.

mkdir "new dir"

Wenn Sie nun in dieses Verzeichnis wechseln möchten, haben Sie einen Pfad mit Leerzeichen.

Aber das sollte kein Problem mehr für dich sein. Um in ein Verzeichnis mit Leerzeichen zu wechseln, verwenden Sie wieder Anführungszeichen oder Backslash.

cd "new dir"
cd new\ dir

Grundsätzlich verwenden Sie immer dann Anführungszeichen oder Backslash-Schlüssel, wenn Sie mit Leerzeichen in Namen umgehen müssen.

Angenommen, Sie müssen eine Datei my file kopieren aus diesem new dir . Folgendes können Sie tun:

cp new\ dir/my\ file

Jetzt wird es etwas verwirrend, oder? Es gibt Backslashes und Forwardslashes. Es könnte einen neuen Benutzer oder sogar einen erfahrenen Benutzer einschüchtern, wenn es viel zu viele dieser Schrägstriche gibt.

Noch unordentlicher wird es, wenn der Dateiname Backslashes enthält. Dann sehen Sie doppelte Backsplashes.

Aus diesem Grund sollten Sie versuchen, Leerzeichen oder andere Sonderzeichen in Dateinamen zu vermeiden. Um die Wörter in einem Dateinamen zu trennen, verwenden Sie den Unterstrich.

touch a_very_long_file_name_with_too_many_words

Dadurch sind die Dateinamen leichter lesbar und Sie müssen sich nicht um die Leerzeichen in den Dateinamen kümmern.


Linux
  1. So manipulieren Sie Dateinamen mit Leerzeichen und Sonderzeichen in Linux

  2. Linux + Wie ignoriert (filtert) man Dateien mit Leerzeichen?

  3. So erstellen Sie ein ZFS-Dateisystem mit Dateikomprimierung unter Linux

  4. Wie ersetze ich eine Datei im JAR durch die Befehlszeile in Linux?

  5. So löschen Sie eine Datei mit diesem Namen unter Linux:-]???????q

So verwenden Sie den Linux-rm-Befehl mit Beispielen

So lesen Sie eine Datei mit Leerzeichen in Linux

So ersetzen Sie Leerzeichen in Dateinamen durch Unterstriche in der Linux-Shell

So verknüpfen Sie eine Datei unter Linux per Symlink

So entfernen Sie Leerzeichen aus Dateinamen in Linux

So planen Sie Jobs mit Cron in Linux