Probador de glob y .gitignore
Prueba patrones glob y reglas .gitignore con una lista de rutas y mira qué rutas coinciden y qué regla lo hizo.
Ejemplos de código
Copia estos ejemplos en tu propio proyecto. Cada uno usa solo la biblioteca estándar del lenguaje, así que no hay nada que instalar.
const pattern = '*.log'
const names = ['app.log', 'readme.md', 'error.log']
// * stays inside one path segment, ? is one character, everything else is literal.
const source = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '[^/]*').replace(/\?/g, '[^/]')
const matcher = new RegExp(`^${source}$`)
for (const name of names.filter((candidate) => matcher.test(candidate))) {
console.log(name)
}Qué hace
Prueba patrones glob y reglas .gitignore con una lista de rutas. Cada ruta se marca como coincidente o no, con el patrón responsable al lado, para que veas por qué src/lib/util.test.ts entra o queda fuera.
Cómo se usa
- Pega una ruta por línea, o suelta un archivo de texto, en Rutas.
- Escribe un patrón por línea en Patrones. Las líneas que empiezan por
#son comentarios. - Elige Glob, Bash o Gitignore, y muestra todas las rutas, solo las coincidencias o solo las que no coinciden.
- Copia el resultado.
Ejemplos
Con los patrones src/**/*.ts y !**/*.test.ts, la ruta src/lib/util.ts coincide y src/lib/util.test.ts no, porque la exclusión gana. Con las reglas .gitignore *.log y !keep.log, app.log se ignora y keep.log no.
Conviene saber
*se queda en un directorio,**cruza directorios, y?,[ab]y{a,b}funcionan como en picomatch.- Los archivos ocultos como
.envsolo coinciden si activas Incluir archivos ocultos o el patrón nombra el punto. - En Glob y Bash, un patrón que empieza por
!excluye lo que encontraron los demás. En Gitignore gana la última regla que coincide, como en Git. - Bash lee
**como un simple*, como una shell singlobstar. - Las rutas se comparan como texto. No se lee nada de un disco.
¿Qué significan las tres sintaxis?
Glob es la sintaxis picomatch de la mayoría de herramientas de compilación: * se queda en un directorio, ** cruza directorios, y también funcionan llaves como {a,b}, clases como [ab] y ?. Bash lee ** como un simple *, como una shell sin globstar. Gitignore sigue las reglas de .gitignore: una barra final indica un directorio, una barra inicial ancla a la raíz, y una regla ! posterior vuelve a incluir lo que una anterior ignoraba.
Preguntas frecuentes
¿Qué regla se muestra junto a una ruta?
El primer patrón que coincide. En glob y bash, una ruta que descarta una exclusión (un patrón que empieza por !) muestra esa exclusión. En gitignore se muestra la regla que la ignoró.
¿Por qué * no coincide con un archivo que empieza por punto?
Los globs omiten los archivos ocultos salvo que el patrón nombre el punto. Activa Incluir archivos ocultos para que * y ? los encuentren, como bash dotglob. Un .gitignore no tiene ese interruptor.
¿Esta herramienta envía mis rutas a algún sitio?
No. Todo ocurre en tu navegador. Lo que escribes nunca se envía a nuestros servidores.