Prueba de patrón de glob de shell
Guía
Prueba de patrón de glob de shell
Prueba patrones glob contra una lista de rutas de archivos y ve exactamente cuáles coinciden — en tiempo real, con semánticas para Bash, Zsh, .gitignore, Python y Go fnmatch, y Go path.Match. Introduce un patrón como src/**/*.{js,ts}, pega rutas y observa cómo las coincidencias se resaltan en verde y las no coincidencias se desvanecen mientras escribes.
Cómo Usar
- Introduce un patrón glob en el Patrón global campo (por ejemplo
**/*.log). - Elige un Shell / Modo — el mismo patrón puede coincidir con conjuntos diferentes de rutas según si estás en Bash, .gitignore, Python
fnmatch, o Go. - Pega tu rutas de archivo una por línea — o haz clic en un ejemplo incorporado.
- Las coincidencias se resaltan en verde con un icono de verificación; las no coincidencias permanecen grises. El resumen muestra el conteo y una nota sobre el modo seleccionado.
- Prefija tu patrón con
!para invertir la coincidencia (resalta todo lo que no coincida). no Los cinco modos de shell
Características
- – Bash (con globstar), Zsh extended_glob, .gitignore, Python , cada uno con las semánticas correctas para
fnmatch, y Gopath.Match, y expansión de llaves.*,**,?Resaltado en tiempo real - – Las rutas se reevalúan mientras escribes el patrón; no hay botón de envío. Expansión de llaves
- alternativas en modos Bash y Zsh, incluyendo anidación y productos cruzados como –
{a,b,c}Clases de caracteressrc/{js,ts}/**/*.{spec,test}.ts. - clases negadas y rangos como –
[abc],[!abc]Negación[A-Z]. - – Prefija cualquier patrón con para invertir la coincidencia.
!Notas del modo - – Aparece una breve explicación debajo de cada resultado que explica cómo interpreta el modo elegido el patrón. – Carga un diseño de proyecto web, un filtro de registro en estilo .gitignore o un ejemplo de documentación/README para aprender por inspección.
- Ejemplos rápidos – Los patrones y rutas nunca dejan tu navegador; funciona en modo offline una vez cargado.
- Solo del lado del cliente Depuración de reglas .gitignore
Casos de uso común
- – Pega una lista de rutas desde y ve cuáles serían ignoradas por una regla candidata.
git statusEscribir argumentos de compilación glob - – Valida que un patrón enviado a coincida con los archivos que esperas y nada más.
tsc,esbuild, oprettier --writeEscribir filtros de rutas en CI - – Confirma que un filtro en GitHub Actions o GitLab CI coincida con el subconjunto correcto de archivos antes de empujar.
paths:Traducir scripts de shell - – Verifica que un patrón siga funcionando tras trasladar el código entre Bash y un servicio en Python o Go. Enseñar semánticas de glob
- – Muestra a los estudiantes de forma concreta por qué no atraviesa límites de directorio en Bash pero sí en
*¿Cuál es la diferencia entre * y ** en un patrón glob?fnmatch.
Preguntas frecuentes
-
Un único
coincide con cualquier carácter dentro de un segmento de ruta, pero no atraviesa un separador de directorio (
*). El doble/(llamado globstar) coincide con cualquier número de caracteres a través de cualquier número de segmentos de directorio. Así,**coincide con ambos. No todos los dialectos de glob soportansrc/*.jscoincidesrc/index.jspero nosrc/utils/index.js— Pythonsrc/**/*.jsy Go**tratan los dos asteriscos como dos caracteres separadosfnmatch¿Cómo es diferente el matching de glob con una expresión regular?path.MatchLos glob son un lenguaje de patrones mucho más pequeño diseñado para coincidir con rutas de archivos. La mayoría de los caracteres son literales:*Segura para heredocs -
, y (en algunos shells)
son los únicos metacaracteres. No hay sintaxis de cuantificación, no hay anclajes, no hay miradas, ni referencias de retorno. Las implementaciones traducen internamente el glob a una expresión regular, pero los usuarios no necesitan pensar en términos de expresiones regulares. El glob está diseñado intencionalmente para ser simple para que las líneas de comandos de shell sean cortas y predecibles.
*,?,[...]¿Por qué la expansión de llaves no funciona en todos los dialectos de glob?{...}La expansión de llaves ( -
expansión a tres alternativas) es técnicamente una característica de shell en Bash y Zsh, evaluada antes de que el glob se coincida. El shell expande previamente la expresión de llaves en múltiples argumentos, y los glob de archivos resultantes se coinciden de forma independiente. Las bibliotecas puro glob utilizadas por herramientas como
(en
{a,b,c}), Pythongitno implementan la expansión de llaves porque no forma realmente parte del lenguaje de glob — es un paso de preprocesamiento separado en el nivel del shell..gitignore¿Qué significa el ! inicial en un patrón glob?fnmatch, y Gopath.MatchEl significado exacto depende del contexto. Dentro de una clase de caracteres, -
negativa la clase — coincide con cualquier carácter individual excepto
. Como carácter inicial en un patrón completo,
[!abc]es principalmente unaa,b, occaracterística en la que vuelve a incluir una ruta previamente ignorada. La mayoría de los shells no tratan un inicial!en un glob como negación por sí solos — o bien producen un error (expansión de historia en Zsh) o lo pasan sin procesar. En este tester, un inicial.gitignorese interpreta como una conveniencia: invierte la coincidencia para que las rutas no coincidentes se resalten en verde.!por ejemplo, src/**/*.{js,ts}!src/index.jssrc/utils/helpers.tsREADME.md...
Instalar extensiones
Agregue herramientas IO a su navegador favorito para obtener acceso instantáneo y búsquedas más rápidas
恵 ¡El marcador ha llegado!
Marcador es una forma divertida de llevar un registro de tus juegos, todos los datos se almacenan en tu navegador. ¡Próximamente habrá más funciones!
Herramientas clave
Ver todo Los recién llegados
Ver todoActualizar: Nuestro última herramienta se agregó el 18 de junio de 2026
