Compartir a través de


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 con hello o world cero o una vez
  • *(hello|world): cero o más repeticiones
  • +(hello|world): una o varias repeticiones
  • @(hello|world): exactamente una vez
  • !(hello|world): no hello ni world

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