Megosztás a következőn keresztül:


Fájlegyeztetési minták referenciája

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

Minta szintaxisa

A minta az új vonallal tagolt sztringek vagy lista. A fájl- és könyvtárnevek olyan mintákkal vannak összehasonlítva, amelyek belefoglalják (vagy néha kizárják) őket egy feladatba. Összetett viselkedést több minta halmozásával hozhat létre. A szintaxis teljes útmutatójának .

Karakterek egyeztetése

A legtöbb karakter pontos egyezésként használatos. Ami "pontos" egyezésnek számít, az platformfüggő: a Windows fájlrendszer kis- és nagybetűket nem érzékelyítő, ezért az "ABC" minta egy "abc" nevű fájlnak felel meg. A kis- és nagybetűket megkülönböztető fájlrendszerek esetében ez a minta és név nem egyezik meg.

A következő karakterek speciális viselkedést igényelnek.

  • * egy fájl vagy könyvtárnév nulla vagy több karakterének felel meg. Lásd a példákat.
  • ? egy fájl vagy könyvtárnév egyetlen karakterét is megfelelteti. Lásd a példákat.
  • [] egy fájl- vagy könyvtárnéven belüli karakterkészletet vagy -tartományt egyezik meg. Lásd a példákat.
  • ** rekurzív helyettesítő karakter. Például /hello/**/* megegyezik /helloösszes leszármazottával.

Kiterjesztett globbing

  • ?(hello|world) - egyezés vagy helloworld nulla vagy egyszer
  • *(hello|world) – nulla vagy több előfordulás
  • +(hello|world) – egy vagy több előfordulás
  • @(hello|world) - pontosan egyszer
  • !(hello|world) – nem hello vagy world

Megjegyzés:

A kiterjesztett globok nem képesek a címtárelválasztókra. Például +(hello/world|other) érvénytelen.

Megjegyzések

A # kezdődő minták megjegyzésként lesznek kezelve.

Minták kizárása

Az első ! megváltoztatja a kizárandó belefoglalási minta jelentését. Felvehet egy mintát, kizárhatja annak egy részhalmazát, majd újra belefoglalhatja annak egy részhalmazát: ez az úgynevezett "interleaved" minta.

Több ! megfordítja a jelentést. Lásd a példákat.

A kizárási minta előtt meg kell határoznia egy belefoglalási mintát. Lásd a példákat.

Menekülés

A [] speciális karaktereit tördelve feloldhatja a fájlnévben szereplő literális glob karaktereket. A hello[a-z] konstans fájlnév például hello[[]a-z].

Hasít

/ a Rendszer a Linux és a macOS útvonalelválasztójaként használja. A Legtöbb esetben a Windows-ügynökök elfogadják /. A Rendszer dokumentálja azokat az eseteket, amikor a Windows-elválasztót (\) használni kell.

Példák

Példák alapszintű mintákra

Példák csillagra

1. példa: A minta *Website.slnés a következő fájlok alapján:

ConsoleHost.sln
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln

A minta a következőnek felelne meg:

ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln

2. példa: A minta *Website/*.proj és elérési útjai:

ContosoWebsite/index.html
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/index.html
FabrikamWebsite/FabrikamWebsite.proj

A minta a következőnek felelne meg:

ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/FabrikamWebsite.proj

Kérdőjelek – példák

1. példa: A minta log?.logés a következő fájlok alapján:

log1.log
log2.log
log3.log
script.sh

A minta a következőnek felelne meg:

log1.log
log2.log
log3.log

2. példa: A minta image.???és a következő fájlok alapján:

image.tiff
image.png
image.ico

A minta a következőnek felelne meg:

image.png
image.ico

Példa karakterkészletre

1. példa: A minta Sample[AC].datés a következő fájlok alapján:

SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat

A minta a következőnek felelne meg:

SampleA.dat
SampleC.dat

2. példa: A minta Sample[A-C].datés a következő fájlok alapján:

SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat

A minta a következőnek felelne meg:

SampleA.dat
SampleB.dat
SampleC.dat

3. példa: A minta Sample[A-CEG].datés a következő fájlok alapján:

SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
SampleE.dat
SampleF.dat
SampleG.dat
SampleH.dat

A minta a következőnek felelne meg:

SampleA.dat
SampleB.dat
SampleC.dat
SampleE.dat
SampleG.dat

Rekurzív helyettesítő karakterek példái

A minta **/*.extés a következő fájlok alapján:

sample1/A.ext
sample1/B.ext
sample2/C.ext
sample2/D.not

A minta a következőnek felelne meg:

sample1/A.ext
sample1/B.ext
sample2/C.ext

A következő példát a Copilot hozta létre. A Copilot mesterséges intelligenciával működik, így meglepetések és hibák lehetségesek. További információkért lásd a Copilot általános használati gyakori kérdéseket.

A **/*.ext glob minta egy hatékony rekurzív minta, amelyet számos fájlrendszerben és eszközben (például bash, zsh, Python globstb.) használnak az aktuális könyvtárban és az összes alkönyvtárban .ext végződő összes fájlhoz, függetlenül attól, hogy mennyire mélyen vannak beágyazva.

Íme néhány példa elérési út, amelyek egyeznek **/*.ext:

  • sample1/A.ext
  • sample1/B.ext
  • sample2/C.ext
  • sample2/subdir1/D.ext
  • sample2/subdir1/subdir2/E.ext
  • sample3/F.ext
  • sample3/subdir3/G.ext
  • sample3/subdir3/subdir4/H.ext

A ** rész tetszőleges számú könyvtárat jelent (beleértve a nullát is), és *.ext azt jelenti, hogy a fájl végződése .ext.

Példaminták kizárása

A következő mintával és a következő fájlokkal:

*
!*.xml
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml

A minta a következőnek felelne meg:

ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb

Példák dupla kizárására

A következő mintával és a következő fájlokkal:

*
!*.xml
!!Fabrikam.xml
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml

A minta a következőnek felelne meg:

ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml

Mappák kizárási példái

A következő mintával és a következő fájlokkal:

**
!sample/**
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
sample/Fabrikam.dll
sample/Fabrikam.pdb
sample/Fabrikam.xml

A minta a következőnek felelne meg:

ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml