코드를 읽다보니, **/*.js
처럼 파일경로에 *
, **
이 사용되는 경우가 있는데, 두 개의 차이점은 무엇인지
느낌상 **
은 하위 경로를 모두 선택하는 것 같지만 확실하게 정리해보고자 합니다.
**
은 예상한 대로 recursive folder 를 선택할때 사용합니다.
MSDN, Using Wildcards to Specify Items에서 아래와 같은 내용을 확인할 수 있었습니다.
?
와일드카드 문자는 단일 문자를 찾습니다.
*
와일드카드 문자는 0개 이상의 문자를 찾습니다.
**
와일드카드 문자 시퀀스는 부분 경로를 찾습니다.
예를 들어 프로젝트 파일에서 다음 요소를 사용하여 프로젝트 파일이 포함된 디렉터리의 모든 .cs 파일을 지정할 수 있습니다.
<CSFile Include="*.cs"/>
다음 요소는 D: 드라이브에 있는 모든 .vb 파일을 선택합니다.
<VBFile Include="D:/**/*.vb"/>
와일드카드 확장 없이 항목에 리터럴
*
또는?
문자를 포함하려면 와일드카드 문자를 이스케이프해야 합니다.
MSDN, Specifying Inputs with Wildcards에서도 다음과 같이 파일을 선택할 수 있음을 확인했습니다.
Images 디렉터리 및 하위 디렉터리의 모든 .jpg 파일을 포함하기
Include="Images\**\*.jpg"
img 로 시작하는 모든 .jpg 파일을 포함하기
Include="Images\**\img*.jpg"
디렉터리에서 이름이 jpgs 로 끝나는 모든 파일을 포함
Include="Images\**\*jpgs\*.*"
Include="Images\**\*jpgs\*"