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.