Shell-Glob-Muster-Tester
Führung
Shell-Glob-Muster-Tester
Teste Glob-Muster gegen eine Liste von Dateipfaden und sehe genau, welche Pfade übereinstimmen — in Echtzeit, mit Semantik für Bash, Zsh, .gitignore, Python und Go fnmatch, und Go path.Match. Geben Sie ein Muster wie ein src/**/*.{js,ts}ein, fügen Sie Pfade ein und beobachten Sie, wie Übereinstimmungen grün hervorgehoben und Nicht-Übereinstimmungen ausgeblendet werden, während Sie eingeben.
Nutzung
- Geben Sie ein Glob-Muster im Glob Muster Feld ein (z. B.
**/*.log). - Wählen Sie einen Shell / Modus — das gleiche Muster kann unterschiedliche Mengen von Pfaden ergeben, abhängig davon, ob Sie in Bash, .gitignore, Python
fnmatchoder Go sind. - Fügen Sie Ihre Dateipfade ein pro Zeile — oder klicken Sie ein eingebautes Beispiel.
- Übereinstimmungen werden grün mit einem Prüfzeichen hervorgehoben; Nicht-Übereinstimmungen bleiben grau. Die Zusammenfassung zeigt die Anzahl und einen Hinweis zu dem gewählten Modus.
- Vor das Muster mit
!zu invertieren (alle Pfade hervorheben, die nicht übereinstimmen). nicht Fünf Shell-Modi
Funktionen
- – Bash (mit globstar), Zsh extended_glob, .gitignore, Python jeweils mit den korrekten Semantiken für
fnmatch, und Gopath.Match, und geschweifte Klammern.*,**,?Echtzeit-Hervorhebung - – Die Pfade werden bei Eingabe des Musters neu ausgewertet; kein Submit-Button. Geschweifte Klammern
- Alternativen in Bash- und Zsh-Modi, einschließlich verschachtelter und kreuzerzeugter Kombinationen wie –
{a,b,c}Zeichenklassensrc/{js,ts}/**/*.{spec,test}.ts. - negierte Klassen und Bereiche wie –
[abc],[!abc]Negation[A-Z]. - – Vor jedes Muster mit zu umkehren.
!Modus-Hinweise - – Eine kurze Erklärung erscheint unter jedem Ergebnis und erklärt, wie der gewählte Modus das Muster interpretiert. – Laden Sie eine Web-Projekt-Architektur, eine .gitignore-artige Log-Filterung oder ein Dokumentations-Beispiel zum Inspektionen.
- Schnelle Beispiele – Muster und Pfade bleiben immer in Ihrem Browser; funktioniert offline, sobald geladen ist.
- Nur clientseitig Debuggen von .gitignore-Regeln
Häufige Anwendungsfälle
- – Fügen Sie eine Liste von Pfaden aus ein und sehen Sie, welche durch eine Kandidat-Regel ignoriert würden.
git statusSchreiben von Build-Glob-Argumenten - – Stellen Sie sicher, dass ein Muster, das an übergeben wird, genau die Dateien erfasst, die erwartet werden, und nichts anderes.
tsc,esbuild, oderprettier --writeAutorisieren von CI-Pfad-Filtern - – Bestätigen Sie, dass ein Filter in GitHub Actions oder GitLab CI die richtige Auswahl an Dateien vor dem Push erreicht.
paths:Übersetzen von Shell-Skripten - – Verifizieren Sie, dass ein Muster nach dem Portieren von Code zwischen Bash und einem Python- oder Go-Service weiterhin funktioniert. Unterrichten von Glob-Semantik
- – Zeigen Sie Studierenden konkreter, warum in Bash nicht über die Verzeichnisgrenze geht, aber in
*ja.fnmatch.
Häufig gestellte Fragen
-
Was ist der Unterschied zwischen * und ** in einem Glob-Muster?
Ein einzelnes
*passt auf beliebige Zeichen innerhalb eines einzelnen Pfadabschnitts, aber es kreuzt keine Verzeichnisabgrenzung (/). Das doppelte**(bezeichnet als globstar) passt auf beliebig viele Zeichen über beliebig viele Verzeichnisabschnitte. So passtsrc/*.jspasstsrc/index.jsaber nichtsrc/utils/index.js, währendsrc/**/*.jsbeide passt. Nicht jede Glob-Sprache unterstützt**— Pythonfnmatchund Gopath.Matchbehandeln die beiden Sterne als zwei separate*Tokens. -
Wie unterscheidet sich Glob-Matching von einem regulären Ausdruck?
Globs sind eine viel kleinere Muster-Sprache, die für die Übereinstimmung von Dateipfaden konzipiert ist. Die meisten Zeichen sind wörtlich:
*,?,[...], und (in einigen Shells){...}sind die einzigen Metazeichen. Es gibt keine Quantifikatoren, keine Anker, keine Lookaround und keine Rückverweisungen. Implementierungen übersetzen das Glob-Modell oft intern in einen regulären Ausdruck, aber die Benutzer müssen nicht in regulären Ausdrücken denken. Glob ist absichtlich einfach, damit Befehlszeilen kürzer und vorhersagbar bleiben. -
Warum funktioniert die Braces-Expansion nicht in allen Glob-Dialekten?
Braces-Expansion (
{a,b,c}erweitert auf drei Alternativen) ist technisch eine Shell-Funktion in Bash und Zsh, die vor dem Glob-Matching ausgewertet wird. Die Shell erweitert die geschweifte Ausdruck in mehrere Argumente, und die resultierenden Datei-Globs werden unabhängig abgeglichen. Reine Glob-Bibliotheken, die von Tools wiegit(in.gitignore), Pythonfnmatch, und Gopath.Matchbenutzen, implementieren keine Braces-Expansion, weil es nicht wirklich Teil der Glob-Sprache ist — es ist ein separater Schritt der Shell-Ebene. -
Was bedeutet das führende ! in einem Glob-Muster?
Die genaue Bedeutung hängt vom Kontext ab. Innerhalb einer Zeichenklasse,
[!abc]negiert die Klasse — passt auf jedes einzelne Zeichen außera,b, oderc. Als führendes Zeichen vor einem ganzen Muster,!ist vor allem eine.gitignoreFunktion, bei der ein zuvor ignoriertes Pfad erneut eingeschlossen wird. Die meisten Shells behandeln ein führendes!vor einem Glob nicht als Negation allein — sie geben entweder Fehler (Zsh-Historieerweiterung) oder übergeben es weiter. In diesem Tester wird ein führendes!als eine Bequemlichkeit interpretiert: es invertiert die Übereinstimmung, sodass nicht übereinstimmende Pfade grün hervorgehoben werden.
Erweiterungen installieren
IO-Tools zu Ihrem Lieblingsbrowser hinzufügen für sofortigen Zugriff und schnellere Suche
恵 Die Anzeigetafel ist eingetroffen!
Anzeigetafel ist eine unterhaltsame Möglichkeit, Ihre Spiele zu verfolgen. Alle Daten werden in Ihrem Browser gespeichert. Weitere Funktionen folgen in Kürze!
Unverzichtbare Tools
Alle Neuheiten
AlleAktualisieren: Unser neuestes Werkzeug wurde am 15. Juni 2026 hinzugefügt
