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 una 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.

Coincidencia de 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 ese nombre no coincidirían.

Los siguientes caracteres tienen un comportamiento especial.

  • * coincide con cero o más caracteres de un nombre de archivo o directorio. Consulte ejemplos.
  • ? coincide con cualquier carácter de un nombre de archivo o directorio. Consulte ejemplos.
  • [] coincide con un conjunto o intervalo de caracteres de un nombre de archivo o directorio. Consulte ejemplos.
  • ** carácter comodín recursivo. Por ejemplo, /hello/**/* coincide con todos los descendientes de /hello.

Comodines extendidos

  • ?(hello|world): coincide con hello o world cero veces o una vez.
  • *(hello|world): cero o más repeticiones.
  • +(hello|world): una o más repeticiones.
  • @(hello|world): exactamente una vez.
  • !(hello|world): ni hello ni world.

Tenga en cuenta que los comodines extendidos no pueden abarcar separadores de directorios. Por ejemplo, +(hello/world|other) no es válido.

Comentarios

Los patrones que comienzan con # se tratan como comentarios.

Exclusión de patrones

! al principio cambia el significado de un patrón de inclusión a exclusión. Puede incluir un patrón, excluir un subconjunto de él y, después, volver a incluir un subconjunto de ese. Esto se conoce como patrón "intercalado".

Varios ! invierten el significado. Consulte ejemplos.

Debe definir un patrón de inclusión antes de excluir uno. Consulte ejemplos.

Escape

Encerrar los caracteres especiales entre [] se puede usar para escapar caracteres comodín literales en un nombre de archivo. Por ejemplo, el nombre de archivo literal hello[a-z] se puede escapar como hello[[]a-z].

Slash

/ se usa como separador de ruta de acceso en Linux y macOS. La mayoría de las veces, los agentes de Windows aceptan /. Los casos en los que debe usarse el separador de Windows (\) están documentados.

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

Ejemplos de patrones de exclusión

Dado el patrón:

*
!*.xml

Y los 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 los 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 los 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