Linux lernen

Wildcards in Linux erklärt mit 10 Beispielen

Wildcards in Linux erklärt mit 10 Beispielen

Platzhalter, a.k.ein. Metazeichen, sind ein Glücksfall, wenn es darum geht, in einem Haufen ähnlich benannter Dateien nach bestimmten Dateinamen zu suchen. Durch die Verwendung von Wildcards in Linux können Sie beispielsweise die ls Befehl,  rm Befehl oder ein anderer Linux-Befehl für mehrere Dateien, solange sie den definierten Kriterien entsprechen.

In dieser Lektüre diskutieren wir, wie Sie Wildcards in Linux verwenden können, um Ihren Workflow zu optimieren und produktiver zu werden. Aber werfen wir zunächst einen kurzen Blick auf die mächtigsten und am häufigsten verwendeten Wildcards in Linux:

  1. Das Sternchen (*): Das (*) Wildcard steht für eine beliebige Anzahl unbekannter Zeichen. Dies ist nützlich, wenn Sie nach Dokumenten oder Dateien suchen, sich aber nur einen Teil ihres Namens merken.
  2. Das Fragezeichen (?): Das (?) Platzhalter steht für nur ein unbekanntes Zeichen. Dies ist nützlich, wenn Sie eine Liste ähnlich benannter Dateien haben und sich bei einigen Zeichen nicht sicher sind.
  3. Die Zeichen in Klammern ([ ]): Das ([ ]) Platzhalter - die 3. Klammer und nicht die 1. Klammer - wird verwendet, um alle Vorkommen von Zeichen abzugleichen, die in den Klammern definiert sind. Diese Option ist praktisch, wenn Sie mit Groß- und Kleinbuchstaben arbeiten, wie wir später sehen werden.

Jetzt ist mir klar, dass all diese Informationen keinen Sinn machen, wenn Sie sich noch nie zuvor mit Wildcards beschäftigt haben. Um Ihnen jedoch zu helfen, Ihre Verwirrung zu beseitigen, haben wir eine detaillierte Anleitung mit 10 Beispielen zusammengestellt, damit Sie die Funktion von Wildcards richtig verstehen und selbst verwenden können.

Beispiele für übereinstimmende Dateinamen mit Platzhaltern

Lassen Sie uns zunächst all die verschiedenen Platzhalter verwenden, die wir zuvor besprochen haben, und sehen wir uns an, wie Sie sie verwenden, um Dateinamen abzugleichen. Dazu verwenden wir den folgenden Satz von Dateien:

  1. Dieser Befehl stimmt mit allen Dateinamen überein, die mit dem Buchstaben beginnen M und endet mit einem oder mehreren Vorkommen eines beliebigen Zeichens.
$ ls -l M*

Ausgabe:

Beachten Sie, dass nur die Dateien übereinstimmen, die mit dem Großbuchstaben „M“ beginnen und nicht mit dem Kleinbuchstaben „m“. 

2. Dieser Befehl kopiert alle Dateinamen, die mit beginnen Meine Daten und endet mit einem oder mehreren Vorkommen eines beliebigen Zeichens.

$ ls Meine-Daten*

Ausgabe:

3. Dieser Befehl stimmt mit allen Dateien überein, die mit dem Buchstaben beginnen M, endet mit dem Buchstaben Nein, und mit einem beliebigen Zeichen dazwischen.

$ ls M?Nein.Sch

Ausgabe:

4. Dieser Befehl stimmt mit allen Dateien überein, die mit dem Buchstaben beginnen M, endet mit dem Buchstaben Nein, aber nur 1 Zeichen dazwischen gehört zur Liste der Zeichen, die in den eckigen Klammern definiert sind [AEIOU].

$ ls M[AEIOU]N.Sch

Ausgabe:

4 Beispiele für das Kombinieren verschiedener Platzhalter, um Dateinamen abzugleichen

Um Ihre Effektivität zu steigern, können Sie diese Platzhalter jetzt kombinieren und abgleichen, um zusammenzuarbeiten und Dateinamen effektiver abzugleichen.

  1. Hier ist ein Befehl, der Ihnen hilft, jeden Dateinamen zu finden, der 3 beliebige Zeichen (einschließlich keine Zeichen) gefolgt von haben kann Kuchen und endet mit einem oder mehreren Vorkommen eines beliebigen Zeichens.
$ ls ???Kuchen*

Ausgabe:

2. Hier ist ein Befehl, der allen Dateinamen entspricht, die mit einem dieser Zeichen in eckigen Klammern beginnen start [MNLOP] und enden mit einem oder mehreren Vorkommen eines beliebigen Zeichens.

Mal sehen, was passiert, wenn wir ersetzen [MNLOP] mit [mnlop].

Die Befehle, die wir verwenden werden, sind also:

$ ls [MNLOP]*
$ ls [mnlop]*

Ausgabe:

Wie Sie sehen, müssen Sie die Groß- und Kleinschreibung der Buchstaben, die Sie in den Klammern-Platzhalter eingeben, beachten, da dies das Ergebnis beeinflusst.

3. Hier ist ein Befehl, der alle Dateinamen mit einem dieser Zeichen abgleicht [MNLOP] als erster einer dieser Charaktere [AEIOU] als zweites, gefolgt von Nein, und endet schließlich mit einem oder mehreren Vorkommen eines beliebigen Zeichens.

$ ls [MNLOP][AEIOU]N*

Ausgabe:

Beachten Sie, wie die (*) Wildcard hilft nur dabei, alle Erweiterungen der Dateinamen zu finden.4.

Hier ist ein Befehl, der allen Dateinamen entspricht, die mit einem oder mehreren Vorkommen eines beliebigen Zeichens beginnen, das zu führt M, gefolgt von einem beliebigen Zeichen, gefolgt von Nein, und endet dann mit einem oder mehreren Vorkommen eines beliebigen Zeichens.

$ ls *M?N*

Ausgabe:

Verwenden von Platzhaltern zum Abgleichen von Zeichensätzen

Inzwischen sollten Sie wissen, wie Wildcards funktionieren. Wir können uns jetzt auf einige fortgeschrittene Anwendungsfälle konzentrieren, in denen Wildcards von unschätzbarem Wert sind.

Zum Beispiel die Klammer-Platzhalter ermöglicht die Definition eines Zeichenbereichs mit [-] anstatt jedes Zeichen abzutippen. Dies kann äußerst nützlich sein, wenn Sie eine Reihe von Zeichen angeben und Dateinamen basierend darauf abgleichen möchten, wo die Zeichen erscheinen. 

Dazu verwenden wir den folgenden Satz von Dateien, wie in der Abbildung gezeigt:

Wie Sie sehen können, ist das von uns erstellte Bild eine Liste von Dateien mit verschiedenen Pokemon-Daten.

Um nun alle Dateinamen zu finden, die mit beginnen Pokémon- gefolgt von einer Zahl, dann einem beliebigen alphanumerischen Zeichen, wieder gefolgt von einer Zahl und endend mit einem oder mehreren Vorkommen eines beliebigen Zeichens, können wir den folgenden Befehl verwenden:

$ls pokemon-[0-9][0-9a-zA-Z][0-9]*

Ausgabe:

Das Teil [0-9] steht für beliebige numerische Zeichen zwischen 0 zu 9

Der nächste Teil [0-9a-zA-Z] steht für eine beliebige Anzahl von Zeichen zwischen 0 zu 9, oder ein beliebiger Kleinbuchstabe dazwischen ein zu z, oder ein Großbuchstabe dazwischen EIN zu Z.

Wenn wir also auswechseln [0-9a-zA-Z] mit [0-9a-z], Sie können sehen, dass das Ergebnis keinen Dateinamen mit den Großbuchstaben an der angegebenen Position enthält.

$ls pokemon-[0-9][0-9a-z][0-9]*

Ausgabe:

Verwenden von Platzhaltern zum Negieren eines Zeichensatzes

Wie Sie einen Zeichensatz angeben können, können Sie beim Abgleichen für Dateinamen auch einen Zeichensatz negieren. Hier ist ein Beispiel dafür, wie es gemacht wird:

$ls pokemon-[0-9][!a-z][0-9]*

Ausgabe:

Dies stimmt mit allen Dateinamen überein, die mit beginnen Pokémon- gefolgt von einem beliebigen numerischen Zeichen, dann von einem beliebigen anderen Zeichen als Kleinbuchstaben, gefolgt von einem beliebigen numerischen Zeichen und abschließend mit einem oder mehreren Vorkommen eines beliebigen Zeichens.

Verwenden von [!a-z], wir negieren die Menge aller Kleinbuchstaben. Jetzt werden die Dateinamen für jedes Zeichen abgeglichen, das kein Kleinbuchstabe ist.

Einpacken

Damit sind wir am Ende unseres kurzen Blicks auf Linux-Wildcards und deren Verwendung. Alles zusammenfassend, kurz gesagt, die Stern (*) Wildcard ist am nützlichsten, wenn Sie den Dateinamen kennen, aber nicht die Erweiterung. Das Fragezeichen (?) Wildcard kann Ihnen helfen, wenn Sie ein paar Dateinamenszeichen vergessen. Das Klammer ([]) Platzhalter sind nützlich, wenn Sie Ihre Suche innerhalb einer Reihe definierter Zeichen einschließen möchten.

OpenTTD vs. Simutrans
Das Erstellen einer eigenen Transportsimulation kann Spaß machen, entspannend und äußerst verlockend sein. Deshalb sollten Sie so viele Spiele wie mög...
OpenTTD-Tutorial
OpenTTD ist eines der beliebtesten Wirtschaftssimulationsspiele auf dem Markt. In diesem Spiel musst du ein wunderbares Transportunternehmen aufbauen....
SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...