Wie man mit Leerzeichen in Dateinamen unter Linux umgeht

Dec 14, 2024
Linux

Wie die meisten Betriebssysteme unterstützt Linux Dateinamen mit Plätzen. Die Verwendung dieser Dateinamen in der Befehlszeile ist jedoch nicht immer einfach. Hier finden Sie verschiedene Möglichkeiten, wie Sie Dateinamen mit Räumen abwickeln können.

Der bescheidene Dateiname
Warum Räume in Linux -Dateinamen ein Schmerz sind
Wie man Räume zitiert und entkommt
So beheben Sie das Raumproblem in seiner Quelle
Die Registerkartenerweiterung erleichtert den Umgang mit Räumen
So verwenden Sie Dateinamen mit Leerzeichen in Bash -Skripten
Verteilt, aber nicht schuppig

Der bescheidene Dateiname

Alles auf dem Computer gespeichert Festplatte muss einen Namen haben. Ohne einen Namen würden keine Dateien vorhanden. Alle Anwendungen und Daemons, die auf den Start Ihres Computers gestartet werden, und alle von Ihnen verwendeten Software müssen in einem Dateisystem identifiziert und gespeichert werden. Diese Identifizierung ist der Name der Datei. “

Gleiches gilt für die Dateien, die Sie erstellen oder installieren. Alle Ihre Dokumente, Bilder und Musik benötigen Dateinamen. Ohne Dateinamen könnte kein Ihrer digitalen Vermögenswerte vorhanden sein. Da Dateinamen so wichtig sind, bemüht sich Linux, so wenige Regeln für ihre Zusammensetzung wie möglich aufzuerlegen.

Unter Linux kann ein Dateiname einen beliebigen Charakter enthalten, der vom Vorwärtsstrahl abgesehen wird. / Und der Nullcharakter, 0x00 . Das Nullzeichen wird verwendet, um das Ende einer Zeichenfolge zu markieren, sodass es nicht in der Zeichenfolge selbst vorhanden sein kann, oder Linux würde den Dateinamen an der Position des Nullzeichen abschneiden. Der " / ”Vorwärtsschild wird als Trennzeichen in Verzeichnispfaden verwendet.

Dateinamen sind Fallempfindlichkeit, und kann bis zu 255 Bytes lang sein , einschließlich des Nullcharakters. Verzeichniswege können bis zu 4096 Bytes lang sein, einschließlich des Null -Charakters. Beachten Sie, dass dies ihre Länge in ist Bytes , was möglicherweise nicht direkt gleichzusetzen ist Figuren . 16-Bit-Unicode-Zeichen nehmen beispielsweise jeweils zwei Bytes.

Retro-Computing-Enthusiasten und diejenigen mit langen Erinnerungen werden wissen, dass in den frühen Tagen von PCs, Microsoft -Festplattenbetriebssystem , Dos, war unempfindlich und hatte eine Dateiname-Grenze von acht Zeichen sowie ein Drei-Charakter Verlängerung .

Sie mussten sehr nachdenklich und manchmal kreativ sein, wenn Sie Dateien benannten. Zum Vergleich: Die Freiheit, die wir heute haben, bedeutet, dass wir Dateien nennen können, was wir wollen, mit wenig Gedanken an etwas anderes als die Beschreibung, die wir für diese Datei erstellen.

Aber bei Dateinamen sind wir am häufigsten nicht die Charaktere, die wir eingeben, sondern die Räume zwischen ihnen.

Warum Räume in Linux -Dateinamen ein Schmerz sind

Shells wie Bash interpretieren eine platzgetrennte Zeichenfolge von Wörtern als individuelle Befehlsargumente, nicht als ein einziges Argument. Hier ist ein Beispiel mit Verwendung berühren Zu Erstellen Sie eine neue Datei genannt "meine neue Datei.txt."

Wie wir sehen können, ls Zeigt uns, dass drei Dateien erstellt werden, eines namens "My", ein anderer "New" und eines weiteren "file.txt".

Beachten Sie, dass berühren Ich habe keinen Fehler beklagt oder haben. Es führt heraus, was es für wir bittet. Also kehrt es uns still in die Befehlszeile zurück. Wenn wir nicht motiviert sind, zu überprüfen, werden wir nicht wissen, dass die Dinge nicht nach Plan verlaufen sind.

Um die gewünschte Datei zu erstellen, müssen wir zitieren oder entkommen.

Wie man Räume zitiert und entkommt

Wenn wir den gesamten Dateinamen zitieren, berühren weiß, dass es den zitierten Text als einzelnes Argument behandeln muss.

Diesmal erhalten wir die einzelne Datei, die wir erwarten.

Wir können das gleiche Ergebnis erzielen, wenn wir den Backslash -Charakter verwenden “ \ Um den Räumen zu entkommen. Indem sie den Räumen „entkommen“, die sie nicht als Sonderfiguren behandelt werden - dh Argument -Separatoren -, gelten sie als einfache alte Räume.

Das funktioniert, aber die Fluchtflächen machen das Tippen von Dateinamen langsamer und fehleranfällig. Die Dinge können wirklich hässlich werden, wenn Sie auch Verzeichnisnamen mit Leerzeichen haben.

Dieser Befehl kopiert eine einzelne Textdatei aus einem Verzeichnis namens "DIR One" in ein Verzeichnis namens "DIR Two" und speichert die Kopie als BAK -Datei. Und es ist ein ziemlich einfaches Beispiel.

So beheben Sie das Raumproblem in seiner Quelle

Wenn es sich um Ihre eigenen Dateien handelt, können Sie die Richtlinienentscheidung treffen, um niemals Leerzeichen zu verwenden, und erstellen (oder Masse umbenennen ) Dateinamen wie diese.

Zugegeben, das ist eine robuste Lösung, aber sie ist immer noch hässlich. Es gibt bessere Optionen, z. B. die Verwendung von Strichen “ - - ”Oder unterstreicht“ _ ”Um Ihre Worte zu trennen.

Beide werden das Problem umgehen und lesbar. Wenn Sie Ihren Dateinamen keine zusätzlichen Zeichen hinzufügen möchten, können Sie verwenden Kamelase Um Ihre Dateinamen wie folgt lesbar zu machen:

Die Registerkartenerweiterung erleichtert den Umgang mit Räumen

Natürlich hilft die Übernahme einer Namenskonvention und beim Einhalten daran nur, wenn Sie mit Ihren eigenen Dateien zu tun haben. Es ist unwahrscheinlich, dass Dateien, die von einem anderen Ort kommen, Ihrer adoptierten Namenskonvention folgen.

Sie können die Registerkartenerweiterung verwenden, um die Dateinamen für uns genau zu „füllen“. Nehmen wir an, wir wollen löschen Die BAK -Datei, die wir in „Dir Two“ erstellt haben, verwenden rm .

Wir tippen zunächst "RM Dir", weil wir die verwenden rm Befehl und wir wissen, dass der Verzeichnisname mit "Dir" beginnt.

Durch das Drücken der Taste „Registerkarte“ scannen Bash nach Übereinstimmungen im aktuellen Verzeichnis.

Es gibt zwei Verzeichnisse, die mit „Dir“ beginnen, und in beiden Fällen ist der nächste Charakter ein Raum. Also fügt Bash den Backslash -Charakter hinzu “ \ Und ein Raum. Bash wartet dann darauf, dass wir den nächsten Charakter bereitstellen. Es braucht den nächsten Charakter, um zwischen den beiden möglichen Übereinstimmungen in diesem Verzeichnis zu unterscheiden.

Wir geben ein "t" für "zwei" ein und drücken dann noch einmal auf "Tab".

Bash vervollständigt den Verzeichnisnamen für uns und wartet darauf, dass wir den Beginn des Dateinamens eingeben.

Wir haben nur eine Datei in diesem Verzeichnis. Daher reicht das Eingeben des ersten Buchstabens des Dateinamens „M“ aus, um Bash mitzuteilen, welche Datei wir verwenden möchten. Das Eingeben von "M" und das Drücken von "Tab" vervollständigt den Dateinamen für uns, und "Enter" führt den gesamten Befehl aus.

Die Registerkartenerweiterung erleichtert einfach, dass Sie Dateinamen richtig abrufen. Außerdem beschleunigt sich das Navigieren und Eingeben der Befehlszeile im Allgemeinen.

VERWANDT: Verwenden Sie die Registerkarte Fertigstellung, um Befehle schneller auf jedem Betriebssystem einzugeben

So verwenden Sie Dateinamen mit Leerzeichen in Bash -Skripten

Es ist keine Überraschung, dass das Skripte Haben Sie genau die gleichen Probleme mit Leerzeichen in Dateinamen wie die Befehlszeile. Wenn Sie einen Dateinamen als Variable übergeben, stellen Sie sicher, dass Sie den variablen Namen zitieren.

Dieses kleine Skript überprüft das aktuelle Verzeichnis auf Dateien, die mit dem Dateimuster "*.txt" übereinstimmen, und speichert sie in einer Variablen aufgerufen Datei_List . A für Schleife wird verwendet, um eine einfache Aktion auf jedem einzelnen auszuführen.

Kopieren Sie diesen Text in einen Editor und speichern Sie ihn in einer Datei namens "Dateien.sh". Dann benutze Die Chmod Befehl Um es ausführbar zu machen.

Wir haben einige Dateien in diesem Verzeichnis. Man hat einen einfachen Dateinamen, und die anderen beiden verwenden Unterstriche “ _ ”Oder Striche“ - - ”Anstelle von Leerzeichen. Das sehen wir, wenn wir das Skript ausführen.

Das scheint gut zu funktionieren. Ändern wir jedoch die Dateien im Verzeichnis für Dateien, die Leerzeichen in ihren Namen enthalten.

Jedes Wort in jedem Dateinamen wird so gehandhabt, als wäre es ein Dateiname für sich, und so fällt das Skript aus. Aber alles, was wir tun müssen, um die Skripträume in Dateinamen zu verarbeiten, ist das Zitieren der $ Datei Variable in der für Schleife.

Beachten Sie, dass das Dollar Zeichen " $ ”Ist innerhalb der Zitate. Wir haben diese Änderung vorgenommen und in der Skriptdatei "Dateien.sh" gespeichert. Diesmal werden die Dateinamen richtig behandelt.

VERWANDT: So verarbeiten Sie eine Dateizeile nach Zeile in einem Linux -Bash -Skript

Verteilt, aber nicht schuppig

Das Vermeiden von Räumen in Ihren eigenen Dateinamen führt Sie nur so weit. Es ist unvermeidlich, dass Sie auf Dateien aus anderen Quellen mit Namen stoßen, die Räume enthalten. Wenn Sie diese Dateien in der Befehlszeile oder in Skripten verarbeiten müssen, gibt es zum Glück einfache Möglichkeiten, dies zu tun.


Linux - Die beliebtesten Artikel

Neue Produkte in Ubuntu 21.04 ‚Hirsute Hippo‘

Linux Apr 22, 2025

Die brandneue Veröffentlichung von Ubuntu 21.04. Das Hirsute HIPPO wurde am 22. April 2021 veröffentlicht. Es ist eine interimale Veröffentlichung der beliebten Linux-Distr..


Wie Verwenden von verschlüsselten Passwörtern in Bash-Skripte

Linux Jun 30, 2025

fatmawati achmad zaenuri / shacktock.com Wenn Sie dazu gezwungen sind, ein Linux-Skript zu verwenden, um eine Verbindung zu einer kennwortgeschützten Ressourc..


Was ist "Wurzel" auf Linux?

Linux Jul 7, 2025

fatmawati achmad zaenuri / shacktock.com Der root-Benutzer ist die leistungsstärkste Einheit im Linux-Universum mit grenzenlosen Mächten, zum Besseren oder..


Die besten Linux-Laptops von 2021 für Entwickler und Enthusiasten

Linux Sep 27, 2025

tomeqs / shacktock.com. Was soll ich in einem Linux-Laptop im Jahr 2021 suchen? [fünfzehn] Sie können fast jeden Laptop kaufen und Installier..


Wie man Fedora Linux aktualisiert

Linux Nov 10, 2024

Sie haben also endlich Fedora Linux heruntergeladen und installiert, aber jetzt fragen Sie sich vielleicht, wie Sie Ihr System auf dem neuesten Stand halten? Zum Glück gibt Fedora Ihnen e..


So fügen Sie einen Benutzer zur sudoers -Datei unter Linux hinzu

Linux Oct 30, 2025

Wenn ein sudo Der Befehl unter Linux erhalten Sie mit einer Nachricht, dass ein Benutzer "nicht in der Sudoers -Datei" ist, und müssen auf die Liste "Sudoers" einsteigen. Wir werden..


So setzen Sie eine statische IP -Adresse in Ubuntu

Linux Oct 17, 2025

Ihr Heimnetzwerk stützt sich auf IP -Adressen, um Daten zwischen Geräten zu leiten, und manchmal kann sich die Adresse eines Geräts ändern. Hier erfahren Sie, wie Sie einem Ubuntu Linux -Co..


So erhalten Sie Ihre öffentliche IP in einem Linux -Bash -Skript

Linux Nov 9, 2024

Sie benötigen Ihre externe IP -Adresse, wenn Sie eine Verbindung zu Ihrem Computer herstellen möchten. Es ist einfach, es manuell zu finden, aber hier finden Sie Ihre IT in einem Linux -Skrip..


Kategorien