파일 일치 패턴 참조
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
패턴 구문
패턴은 줄로 구분된 문자열의 문자열 또는 목록입니다. 파일 및 디렉터리 이름은 작업에 포함(또는 경우에 따라 제외)하는 패턴과 비교됩니다. 여러 패턴을 쌓아 복잡한 동작을 구축할 수 있습니다. 전체 구문 가이드는 fnmatch를 참조하세요.
문자 일치
대부분의 문자는 정확한 일치 항목으로 사용됩니다. "정확한" 일치 항목으로 계산되는 것은 플랫폼에 따라 달라집니다. Windows 파일 시스템은 대/소문자를 구분하지 않으므로 패턴 "ABC"는 "abc"라는 파일과 일치합니다. 대/소문자를 구분하는 파일 시스템의 경우 해당 패턴과 이름이 일치하지 않습니다.
다음 문자에는 특별한 동작이 있습니다.
*
는 파일 또는 디렉터리 이름 내에서 0개 이상의 문자와 일치합니다. 예를 참조하세요.?
는 파일 또는 디렉터리 이름 내의 모든 단일 문자와 일치합니다. 예를 참조하세요.[]
는 파일 또는 디렉터리 이름 내의 문자 집합 또는 범위와 일치합니다. 예를 참조하세요.**
재귀 야생카드. 예를 들어 .의/hello/**/*
모든 하위 항목과 일치합니다/hello
.
확장된 글로빙
?(hello|world)
- 일치hello
또는world
0 또는 한 번*(hello|world)
- 0개 이상의 발생+(hello|world)
- 하나 이상의 발생@(hello|world)
- 정확히 한 번!(hello|world)
- 아님hello
또는world
확장된 GLOB는 디렉터리 구분 기호를 확장할 수 없습니다. 예를 들어 +(hello/world|other)
는 유효하지 않습니다.
설명
시작하는 #
패턴은 주석으로 처리됩니다.
패턴 제외
선행 !
은 제외할 포함 패턴의 의미를 변경합니다.
패턴을 포함하고, 하위 집합을 제외한 다음, 해당 하위 집합을 다시 포함할 수 있습니다. 이를 "인터리브" 패턴이라고 합니다.
여러 !
가지가 의미를 대칭 이동합니다. 예를 참조하세요.
제외하기 전에 포함 패턴을 정의해야 합니다. 예를 참조하세요.
이스케이프
특수 문자 래핑은 파일 이름에서 []
리터럴 glob 문자를 이스케이프하는 데 사용할 수 있습니다. 예를 들어 리터럴 파일 이름은 hello[a-z]
.로 hello[[]a-z]
이스케이프할 수 있습니다.
슬래시
/
는 Linux 및 macOS에서 경로 구분 기호로 사용됩니다.
대부분의 경우 Windows 에이전트는 수락 /
합니다.
Windows 구분 기호(\
)를 사용해야 하는 경우를 설명합니다.
예제
기본 패턴 예제
별표 예제
예제 1: 패턴 *Website.sln
및 파일 제공:
ConsoleHost.sln
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
패턴은 다음과 일치합니다.
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
예제 2: 패턴 *Website/*.proj
및 경로 제공:
ContosoWebsite/index.html
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/index.html
FabrikamWebsite/FabrikamWebsite.proj
패턴은 다음과 일치합니다.
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/FabrikamWebsite.proj
물음표 예제
예제 1: 패턴 log?.log
및 파일 제공:
log1.log
log2.log
log3.log
script.sh
패턴은 다음과 일치합니다.
log1.log
log2.log
log3.log
예제 2: 패턴 image.???
및 파일 제공:
image.tiff
image.png
image.ico
패턴은 다음과 일치합니다.
image.png
image.ico
문자 집합 예제
예제 1: 패턴 Sample[AC].dat
및 파일 제공:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
패턴은 다음과 일치합니다.
SampleA.dat
SampleC.dat
예제 2: 패턴 Sample[A-C].dat
및 파일 제공:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
패턴은 다음과 일치합니다.
SampleA.dat
SampleB.dat
SampleC.dat
예제 3: 패턴 Sample[A-CEG].dat
및 파일 제공:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
SampleE.dat
SampleF.dat
SampleG.dat
SampleH.dat
패턴은 다음과 일치합니다.
SampleA.dat
SampleB.dat
SampleC.dat
SampleE.dat
SampleG.dat
재귀 야생카드 예제
패턴 **/*.ext
및 파일이 지정된 경우:
sample1/A.ext
sample1/B.ext
sample2/C.ext
sample2/D.not
패턴은 다음과 일치합니다.
sample1/A.ext
sample1/B.ext
sample2/C.ext
패턴 예제 제외
패턴이 지정된 경우:
*
!*.xml
및 파일:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
패턴은 다음과 일치합니다.
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
이중 제외
패턴이 지정된 경우:
*
!*.xml
!!Fabrikam.xml
및 파일:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
패턴은 다음과 일치합니다.
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
폴더 제외
패턴이 지정된 경우:
**
!sample/**
및 파일:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
sample/Fabrikam.dll
sample/Fabrikam.pdb
sample/Fabrikam.xml
패턴은 다음과 일치합니다.
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml