Wie man Dateinamen mit Räumen und Sonderzeichen unter Linux manipuliert

Wie man Dateinamen mit Räumen und Sonderzeichen unter Linux manipuliert

Wir stoßen sehr regelmäßig auf Dateien und Ordner Name. In den meisten Fällen beziehen sich Datei-/Ordnername mit dem Inhalt der Datei/des Ordners und startet mit Nummer und Zeichen. Alpha-numerischer Dateiname ist ziemlich häufig und sehr weit verbreitet, aber dies ist nicht der Fall, wenn wir uns mit dem Datei-/Ordnernamen befassen müssen, der spezielle Zeichen enthält.

Notiz: Wir können Dateien jeglicher Art haben, aber zur Einfachheit und einfachen Implementierung werden wir uns mit einer Textdatei befassen (.txt), während des gesamten Artikels.

Beispiel für häufigste Dateinamen sind:

ABC.txt avi.txt debian.txt… 

Beispiel für numerische Dateinamen sind:

121.TXT 3221.TXT 674659.txt… 

Beispiel für alpha-numerische Dateinamen sind:

EG84235.TXT 3KF43NL2.txt 2323ddw.txt… 

Beispiele für Dateinamen, die ein besonderes Zeichen haben und nicht sehr häufig sind:

#232.txt #bkf.TXT #BJSD3469.txt #121nkfd.txt -2232.txt -fbjdew.txt -gi32kj.TXT -321.TXT -BK34.txt… 

Eine der offensichtlichsten Frage hier ist - wer auf der Erde erstellt/mit dem Namen von Dateien/Ordnern mit einem Hash erstellt/handelt (#), ein Semikolon (;), ein Strich (-) oder ein anderer besonderer Charakter.

Ich bin Ihnen zu. Außerdem wird technisch alles, was der Ordner, der Treiber oder alles andere ist, als Datei unter Linux behandelt.

Umgang mit Datei mit dem Namen des DASH (-) im Namen

Erstellen Sie eine Datei, die mit einem Armaturenbrett beginnt (-), sagen -ABX.txt.

$ touch -abc.txt 
Probenausgabe
Berührung: Ungültige Option -'B' Try 'Touch -Help' für weitere Informationen. 

Der Grund für den oben genannten Fehler, dass Shell alles nach einem Armaturenbrett interpretiert (-), als Option, und offensichtlich gibt es keine solche Option, daher ist der Fehler.

Um einen solchen Fehler zu beheben, müssen wir die Bash -Shell mitteilen (ja, das und die meisten anderen Beispiele im Artikel sind für Verprügeln) nichts nach einem besonderen Charakter (hier Dash) als Option zu interpretieren.

Es gibt zwei Möglichkeiten, diesen Fehler zu beheben, als:

$ touch --abc.txt [Option #1] $ touch ./-ABC.txt [Option #2] 

Sie können die so durch beide oben genannte Datei erstellte Datei überprüfen, indem Sie Befehle LS oder LS -l für eine lange Auflistung ausführen.

$ ls -l Gesamt 0 -rw-r-R-- 1 AVI AVI 0 Jun 8 11:05 -ABC.txt 

So bearbeiten Sie die obige Datei, die Sie ausführen können:

$ nano --abc.txt oder $ nano ./-ABC.txt 

Notiz: Sie können ersetzen Nano Mit jedem anderen Herausgeber Ihrer Wahl sagen Sie Vim als:

$ vim --abc.txt oder $ vim ./-ABC.txt 

Ähnlich, wie Sie eine solche Datei verschieben müssen, müssen Sie:

$ mv --abc.txt -a.txt oder $ mv --a.txt -abc.txt 

Und um diese Datei zu löschen, müssen Sie dies tun:

$ rm --abc.txt oder $ rm ./-ABC.txt 

Wenn Sie viele Dateien in einem Ordner haben, enthält der Name das Dash und Sie möchten alle gleichzeitig löschen, tun Sie:

$ rm ./-* 
Wichtig zu beachten:

1. Die gleiche Regel, wie oben beschrieben. Nämlich., -ABC.txt, ABC.txt, ABC-.txt, usw.

2. Dieselbe Regel, wie oben beschrieben, folgt für den Namen des Ordners mit einer beliebigen Anzahl von Hypen und ihrem Auftreten, außer der Tatsache, dass Sie zum Löschen des Ordners verwenden müssen. 'rm -rf' als:

$ rm -rf --abc oder $ rm -rf ./-ABC 

Umgang mit Dateien mit Hash (#) im Namen

Das Symbol # hat eine ganz andere Bedeutung in Bash. Alles nach a # wird als Kommentar interpretiert und daher durch Bash vernachlässigt.

Verstehen Sie es anhand von Beispielen:

eine Datei erstellen #ABC.txt.

$ touch #ABC.txt 
Probenausgabe
Touch: Fehlende Dateioperand versuchen Sie "Touch -Help" für weitere Informationen. 

Der Grund für den oben genannten Fehler, diese Bash ist die Interpretation #ABC.txt ein Kommentar und damit ignorieren. Daher wurde der Befehlsberuch ohne Dateioperanden übergeben und daher der Fehler.

Um einen solchen Fehler zu beheben, können Sie Bash bitten, nicht zu interpretieren # als Kommentar.

$ touch ./#ABC.txt oder $ touch '#abc.txt' 

und überprüfen Sie die gerade erstellte Datei als:

$ ls -l Gesamt 0 -rw-r-R-- 1 AVI AVI 0 Jun 8 12:14 #ABC.txt 

Erstellen Sie nun eine Datei, deren Name enthält # überall außer bei der Betteln.

$ touch ./ABC.txt $ touch ./ABC#.txt oder $ touch 'a#bc.txt '$ touch' ABC#.txt' 

Laufen 'ls -l'Um es zu überprüfen:

$ ls -l Gesamt 0 -rw-r-R-- 1 AVI AVI 0 Jun 8 12:16 ABC.txt -rw-r- r-1 avi avi 0 Jun 8 12:16 ABC#.txt 

Was passiert, wenn Sie zwei Dateien erstellen (sagen wir A Und #bc) auf einmal:

$ touch a.txt #bc.txt 

Überprüfen Sie die gerade erstellte Datei:

$ ls -l Gesamt 0 -rw-r-R-- 1 AVI AVI 0 Jun 8 12:18 A.txt 

Offensichtlich aus dem obigen Beispiel, es hat nur Datei erstellt. 'A"und Datei"#bc'wurde ignoriert. Um die obige Situation erfolgreich auszuführen, können wir es tun,

$ touch a.txt ./#bc.txt oder $ touch a.txt '#bc.txt' 

und überprüfen Sie es als:

$ ls -l Gesamt 0 -rw-r-R-- 1 AVI AVI 0 Jun 8 12:20 A.txt -rw-r-r-1 avi avi 0 Jun 8 12:20 #bc.txt 

Sie können die Datei als:

$ mv ./#bc.txt ./#CD.txt oder $ mv '#bc.txt "#cd.txt' 

Kopieren Sie es als:

$ cp ./#CD.txt ./#de.txt oder $ cp '#cd.txt "#de.txt' 

Sie können es so bearbeiten, dass Sie Ihre Wahl des Editors untersuchen wie:

$ vi ./#CD.txt oder $ vi '#cd.txt' 
$ nano ./#CD.txt oder $ nano '#cd.txt' 

Und löschen Sie es als:

$ rm ./#bc.txt oder $ rm '#bc.txt' 

Um alle Dateien mit Hash zu löschen (#) Im Dateinamen können Sie verwenden:

 # RM ./#* 

Umgang mit Dateien mit Semikolon (;) in seinem Namen

Falls Sie es nicht wissen. Mit Semikolon können Sie mehrere Befehle auf einmal ausführen und als Trennzeichen fungieren. Haben Sie jemals mit jedem Dateinamen zu tun, der Semikolon hat?? Wenn nicht hier, werden Sie.

Erstellen Sie eine Datei mit Semi-Kolon.

$ touch; ABC.txt 
Probenausgabe
Touch: Fehlende Dateioperand versuchen Sie "Touch -Help" für weitere Informationen. Bash: ABC.TXT: Befehl nicht gefunden 

Der Grund für den oben genannten Fehler, dass beim Ausführen der obigen Befehls Bash interpretieren berühren Als Befehl, konnte aber keinen Dateioperanden vor Semikolon finden, und daher meldet es Fehler. Es meldet auch einen weiteren Fehler, der 'ABC.txt"Befehl nicht gefunden, nur weil nach Semikolon Bash einen weiteren Befehl erwartet hatte und"ABC.txt', ist kein Befehl.

Um einen solchen Fehler zu beheben, fordern Sie Bash mit, dass er Semikolon nicht als Befehlsseparator interpretieren soll, wie es:

$ touch ./';ABC.txt 'oder $ touch'; ABC.txt' 

Notiz: Wir haben den Dateinamen mit einem einzigen Zitat beigefügt ". Es sagt Bash das ; ist ein Teil des Dateinamens und nicht des Befehlsabscheiders.

Rest der Aktion (nämlich., Kopieren, verschieben, löschen) in der Datei und des Ordners mit Semikolon in seinem Namen kann direkt durchgeführt werden, indem der Name in ein einzelnes Zitat eingeschlossen wird.

Umgang mit anderen Sonderzeichen im Datei-/Ordnernamen

Plus Zeichen (+) im Dateinamen

Benötigt nichts mehr, tun Sie es einfach normal, als einfacher Dateiname, wie unten gezeigt.

$ touch +12.txt 

Dollar Zeichen ($) im Dateinamen

Sie müssen den Dateinamen in einem einzigen Zitat einschließen, wie wir es im Fall von Semikolon getan haben. Der Rest der Dinge sind einfach…

$ touch '$ 12.txt' 

Prozent (%) im Dateinamen

Sie müssen nichts anders machen, es als normale Datei behandeln.

$ touch %12.txt 

Sternchen (*) im Dateinamen

Wenn Sie einen Sternchen im Dateinamen haben, ändern Sie nichts und Sie können es weiterhin als normale Datei verwenden.

$ touch *12.txt 

Notiz: Wenn Sie eine Datei löschen müssen, die mit beginnt *, Verwenden Sie niemals folgende Befehle, um solche Dateien zu löschen.

$ rm * oder $ rm -rf * 

Verwenden Sie stattdessen,

$ rm ./*.txt 

Ausrufezeichen (!) im Dateinamen

Schließen Sie einfach den Dateinamen in ein einzelnes Zitat ein und der Rest der Dinge sind gleich.

$ touch '!12.txt' 

Bei Sign (@) im Dateinamen

Nichts extra, behandeln Sie einen Dateinamen mit dem Zeichen als nicht -rmale Datei.

$ touch '@12.txt' 

^ im Dateinamen

Keine zusätzliche Aufmerksamkeit erforderlich. Verwenden Sie eine Datei mit ^ in Dateiname als normale Datei.

$ touch ^12.txt 

Ampersand (&) im Dateinamen

Der Dateiname sollte in einzelnen Zitaten eingeschlossen sein und Sie sind bereit zu gehen.

$ touch '& 12.txt' 

Klammern () im Dateinamen

Wenn der Dateiname Klammern enthält, müssen Sie den Dateinamen mit einzelnen Zitaten einschließen.

$ touch '(12.txt)' 

Klammern im Dateinamen

Keine zusätzliche Vorsorge benötigt. Behandle es einfach als eine andere Datei.

$ touch 12.txt 

Chevrons im Dateinamen

Ein Dateiname mit Chevrons muss in einzelnen Zitate eingeschlossen sein.

$ touch '' ' 

Quadratklammern [] im Dateinamen

Behandeln Sie den Dateinamen mit quadratischen Klammern als normale Dateien und Sie müssen sich nicht besonders darum kümmern.

$ touch [12.txt] 

Unter Score (_) im Dateinamen

Sie sind sehr häufig und erfordern nichts mehr. Tun Sie einfach, was Sie mit einer normalen Datei getan hätten.

$ touch _12.txt 

Equal-to (=) im Dateinamen

Wenn Sie ein gleiches Zeichen haben, ändern Sie nichts, Sie können es als normale Datei verwenden.

$ touch = 12.txt 

Umgang mit Back Slash (\)

Backslash fordert Shell auf, den nächsten Charakter zu ignorieren. Sie müssen den Dateinamen in einem einzigen Zitat einschließen, wie wir es im Fall von Semikolon getan haben. Der Rest der Dinge ist einfach vorwärts.

$ touch '.txt' 

Der Sonderfall von Vorwärtsschrägung

Sie können keine Datei erstellen. Der Name enthält einen Vorwärtsschrägstrich (/), bis Ihr Dateisystem Fehler hat. Es gibt keine Möglichkeit, einem Stürmerstrich zu entkommen.

Wenn Sie also eine Datei erstellen können, z '/12.txt' oder 'b/c.txt' Dann hat Ihr Dateisystem einen Fehler oder Sie haben einen Unicode -Unterstützung. In diesem Fall ist der Vorwärtsstrahl kein wirklicher Stürmer, sondern ein Unicode.

Fragezeichen (?) im Dateinamen

Ein Beispiel, bei dem Sie keinen besonderen Versuch ausführen müssen. Ein Dateiname mit Fragezeichen kann auf allgemeinste Weise behandelt werden.

$ touch ?12.txt 

Punktmarke (.) im Dateinamen

Die Dateien beginnen mit Punkt (.) sind ganz besonders unter Linux und werden als DOT -Dateien bezeichnet. Es handelt sich um versteckte Dateien im Allgemeinen eine Konfiguration oder Systemdateien. Sie müssen Switch verwenden '-A' oder '-A' mit LS -Befehl Um solche Dateien anzuzeigen.

Das Erstellen, Bearbeiten, Umbenennen und Löschen solcher Dateien ist einfach,.

$ touch .12.txt 

Notiz: In Linux haben Sie möglicherweise so viele Punkte (.) Wie Sie in einem Dateinamen benötigen. Im Gegensatz zu anderen Systempunkten im Dateinamen bedeutet dies nicht, Namen und Erweiterung zu trennen. Sie können eine Datei mit mehreren Punkten erstellen wie:

$ touch 1.2.3.4.5.6.7.8.9.10.txt 

und überprüfen Sie es als:

$ ls -l Gesamt 0 -rw-r-R-- 1 AVI AVI 0 Jun 8 14:32 1.2.3.4.5.6.7.8.9.10.txt 

Komma (,) im Dateinamen

Sie können Komma in einem Dateinamen haben, so viele wie Sie möchten und Sie nichts mehr benötigen. Machen Sie es einfach normal, als einfacher Dateiname.

$ touch, 12.txt oder $ touch, 12,.txt 

Colon (:) im Dateinamen

Sie können einen Dickdarm in einem Dateinamen haben, so viele wie Sie möchten und Sie nichts mehr benötigen. Machen Sie es einfach normal, als einfacher Dateiname.

$ touch: 12.txt oder $ touch: 12:.txt 

Zitate (einzeln und doppelt) im Dateinamen haben

Um Zitate im Dateinamen zu haben, müssen wir die Austauschregel verwenden. ICH.e, wenn Sie ein einzelnes Zitat im Dateinamen haben müssen, schließen Sie den Dateinamen mit doppelten Anführungszeichen ein. Wenn Sie ein Doppelzitat im Dateinamen haben müssen, legen Sie ihn mit einem einzigen Quot ein.

$ touch "15 '.txt "und $ touch '15".txt' 

Tilde (~) im Dateinamen

Einige Redakteure in Linux mögen EMACs Erstellen Sie eine Sicherungsdatei der zu bearbeitenden Datei. Die Sicherungsdatei enthält den Namen der Originaldatei sowie eine Tilde am Ende des Dateinamens. Sie können eine Datei haben, von der der Name Tilde enthält, an jedem Ort einfach wie folgt:

$ touch ~ 1a.txt oder $ touch 2b ~.txt 

Weißraum im Dateinamen

Erstellen Sie eine Datei, deren Name Platz zwischen Zeichen/Wort hat, sagen Sie “Hallo, mein Name ist Avishek.txt”.

Es ist keine gute Idee, den Dateinamen mit Leerzeichen zu haben. Wenn Sie einen unterschiedlichen lesbaren Namen haben, sollten Sie verwenden, unterstrichen oder Dash. Wenn Sie jedoch eine solche Datei erstellen müssen, müssen Sie einen Rückwärtsstrahl verwenden, der das nächste Zeichen dafür ignoriert. Um die obige Datei zu erstellen, müssen wir es so tun…

$ touch hi \ my \ name \ ist \ avishek.txt Hallo, mein Name ist Avishek.txt 

Ich habe versucht, das gesamte Szenario abzudecken, auf das Sie begegnen können. Die meisten der oben genannten Implementierung sind explizit für Bash -Shell und funktionieren möglicherweise nicht in anderen Schalen.

Wenn Sie das Gefühl haben, dass ich etwas verpasst habe (das ist sehr häufig und menschliche Natur), können Sie Ihren Vorschlag in die Kommentare unten aufnehmen. Bleiben Sie in Verbindung, kommentieren Sie weiter. Bleiben Sie dran und verbunden! Wie und teilen Sie uns und helfen Sie uns, sich zu verbreiten!