파일 일치 패턴 참조
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
패턴 구문
패턴은 줄로 구분된 문자열의 문자열 또는 목록입니다. 파일 및 디렉터리 이름은 작업에 포함(또는 경우에 따라 제외)하는 패턴과 비교됩니다. 여러 패턴을 쌓아 복잡한 동작을 구축할 수 있습니다. 전체 구문 가이드는 fnmatch 참조하세요.
문자 일치
대부분의 문자는 정확한 일치 항목으로 사용됩니다. "정확한" 일치 항목으로 계산되는 것은 플랫폼에 따라 달라집니다. Windows 파일 시스템은 대/소문자를 구분하지 않으므로 패턴 "ABC"는 "abc"라는 파일과 일치합니다. 대/소문자를 구분하는 파일 시스템의 경우 해당 패턴과 이름이 일치하지 않습니다.
다음 문자에는 특별한 동작이 있습니다.
-
*
파일 또는 디렉터리 이름 내에서 0개 이상의 문자와 일치합니다. 예를 참조하세요. -
?
파일 또는 디렉터리 이름 내의 모든 단일 문자와 일치합니다. 예를 참조하세요. -
[]
파일 또는 디렉터리 이름 내의 문자 집합 또는 범위와 일치합니다. 예를 참조하세요. - 재귀 와일드카드를
**
. 예를 들어/hello/**/*
/hello
모든 하위 항목과 일치합니다.
확장된 글로빙
-
?(hello|world)
-hello
일치하거나 0번 또는 한 번world
-
*(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