Referencia de patrones de coincidencia de archivos
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Sintaxis del patrón
Un patrón es una cadena o lista de cadenas delimitadas por líneas nuevas. Los nombres de archivo y directorio se comparan con los patrones para incluirlos (o a veces excluirlos) en una tarea. Puede crear un comportamiento complejo apilando varios patrones. Consulte fnmatch para obtener una guía de sintaxis completa.
Coincidir caracteres
La mayoría de los caracteres se usan como coincidencias exactas. Lo que cuenta como una coincidencia "exacta" depende de la plataforma: el sistema de archivos de Windows no distingue mayúsculas de minúsculas, por lo que el patrón "ABC" coincidiría con un archivo denominado "abc". En los sistemas de archivos que distinguen mayúsculas de minúsculas, ese patrón y nombre no coincidirían.
Los siguientes caracteres tienen un comportamiento especial.
-
*
coincide con cero o más caracteres dentro de un nombre de archivo o directorio. Vea ejemplos de . -
?
coincide con cualquier carácter único dentro de un nombre de archivo o directorio. Vea ejemplos de . -
[]
coincide con un conjunto o intervalo de caracteres dentro de un nombre de archivo o directorio. Vea ejemplos de . -
**
comodín recursivo. Por ejemplo,/hello/**/*
coincide con todos los descendientes de/hello
.
Globbing extendido
-
?(hello|world)
: coincide conhello
oworld
cero o una vez -
*(hello|world)
: cero o más repeticiones -
+(hello|world)
: una o varias repeticiones -
@(hello|world)
: exactamente una vez -
!(hello|world)
: nohello
niworld
Tenga en cuenta que los globs extendidos no pueden abarcar separadores de directorios. Por ejemplo, +(hello/world|other)
no es válido.
Comentarios
Los patrones que comienzan por #
se tratan como comentarios.
Excluir patrones
La !
inicial cambia el significado de un patrón de inclusión que se va a excluir.
Puede incluir un patrón, excluir un subconjunto de él y, a continuación, volver a incluir un subconjunto de eso: esto se conoce como un patrón "intercalado".
Varios !
voltea el significado. Vea ejemplos de .
Debe definir un patrón de inclusión antes de excluir uno. Vea ejemplos de .
Escape
El ajuste de caracteres especiales en []
se puede usar para escapar caracteres globales literales en un nombre de archivo. Por ejemplo, el nombre de archivo literal hello[a-z]
se puede escapar como hello[[]a-z]
.
Barra oblicua
/
se usa como separador de ruta de acceso en Linux y macOS.
La mayoría de las veces, los agentes de Windows aceptan /
.
Las ocasiones en las que se debe usar el separador de Windows (\
) se documentan.
Ejemplos
Ejemplos de patrones básicos
Ejemplos de Asterisco
Ejemplo 1: Dado el patrón *Website.sln
y los archivos:
ConsoleHost.sln
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
El patrón coincidiría con:
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
ejemplo 2: Dado el patrón *Website/*.proj
y las rutas de acceso:
ContosoWebsite/index.html
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/index.html
FabrikamWebsite/FabrikamWebsite.proj
El patrón coincidiría con:
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/FabrikamWebsite.proj
Ejemplos de signo de interrogación
Ejemplo 1: Dado el patrón log?.log
y los archivos:
log1.log
log2.log
log3.log
script.sh
El patrón coincidiría con:
log1.log
log2.log
log3.log
Ejemplo 2: Dado el patrón image.???
y los archivos:
image.tiff
image.png
image.ico
El patrón coincidiría con:
image.png
image.ico
Ejemplos de juego de caracteres
Ejemplo 1: Dado el patrón Sample[AC].dat
y los archivos:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
El patrón coincidiría con:
SampleA.dat
SampleC.dat
Ejemplo 2: Dado el patrón Sample[A-C].dat
y los archivos:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
El patrón coincidiría con:
SampleA.dat
SampleB.dat
SampleC.dat
Ejemplo 3: Dado el patrón Sample[A-CEG].dat
y los archivos:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
SampleE.dat
SampleF.dat
SampleG.dat
SampleH.dat
El patrón coincidiría con:
SampleA.dat
SampleB.dat
SampleC.dat
SampleE.dat
SampleG.dat
Ejemplos de caracteres comodín recursivos
Dado el patrón **/*.ext
y los archivos:
sample1/A.ext
sample1/B.ext
sample2/C.ext
sample2/D.not
El patrón coincidiría con:
sample1/A.ext
sample1/B.ext
sample2/C.ext
Excluir ejemplos de patrones
Dado el patrón:
*
!*.xml
y archivos:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
El patrón coincidiría con:
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Exclusión doble
Dado el patrón:
*
!*.xml
!!Fabrikam.xml
y archivos:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
El patrón coincidiría con:
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Exclusión de carpetas
Dado el patrón:
**
!sample/**
y archivos:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
sample/Fabrikam.dll
sample/Fabrikam.pdb
sample/Fabrikam.xml
El patrón coincidiría con:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml