본문으로 건너뛰기
AZ Tools

Glob 패턴 테스터

파일 경로를 glob 패턴(*, **, ?, [...], {a,b})에 대해 브라우저에서 테스트합니다.

결과일치: 2 / 5
  • src/index.ts일치
  • src/lib/util.ts일치
  • src/index.js불일치
  • README.md불일치
  • test/spec.ts불일치

사용법

  1. src/**/*.ts 같은 glob 패턴을 입력합니다.
  2. 경로 상자에 한 줄에 하나씩 파일 경로를 붙여넣습니다.
  3. 각 경로는 일치/불일치로 표시되며 일치 개수 요약이 함께 표시됩니다.

자세한 설명

펼치기

글로브 패턴과 파일 경로 목록을 입력하면 어떤 경로가 일치하는지 한눈에 보이고, 일치 개수도 함께 표시됩니다. 패턴은 대부분의 빌드 도구와 같은 방식으로 정규식으로 컴파일됩니다. 먼저 중괄호를 중첩된 것까지 펼친 다음 각 세그먼트를 변환합니다. 별 하나와 물음표는 한 경로 세그먼트 안에 머무르며 슬래시를 넘지 않고, 슬래시 사이의 별 두 개는 디렉터리 0개 이상과 일치합니다. src/**/*.ts가 src/index.ts에도 일치하는 이유가 이것으로, 많은 사람이 일치하지 않을 것이라 예상하는 경우입니다. 끝에 오는 별 두 개는 그 아래 모든 것과 일치합니다. 여기서는 앞의 점을 특별 취급하지 않으므로 셸과 달리 별 하나가 .env에도 일치한다는 점을 기억하세요. 모든 처리는 브라우저에서 이루어지며 아무것도 업로드되지 않습니다.

자주 묻는 질문

*와 **의 차이는 무엇인가요?

단일 *는 하나의 경로 세그먼트 안에서 임의의 문자에 일치합니다(/에서 멈춤). 이중 **는 슬래시를 포함해 세그먼트를 가로질러 일치하므로 src/**/*.ts는 src/a.ts에도 일치합니다.

중괄호 패턴을 지원하나요?

예. {a,b,c}는 대안으로 확장되어 img.{png,jpg}는 img.png와 img.jpg에 일치합니다. 중첩 및 다중 중괄호도 지원됩니다.

대소문자를 구분하나요?

예. 패턴은 전체 경로에 대해 양 끝이 고정된 상태로 대소문자를 구분하여 일치합니다.

제 데이터가 어딘가로 전송되나요?

아니요. 일치 검사는 전적으로 브라우저에서 이루어지며 아무것도 업로드되지 않습니다.

src/**/*.ts가 왜 중간 디렉터리 없이 src/index.ts에도 일치하나요?

슬래시 사이의 **는 하나 이상이 아니라 0개 이상의 디렉터리를 뜻하기 때문입니다. 빌드 도구들의 표준 동작이며 패턴을 그렇게 쓰는 이유이기도 합니다. 하위 디렉터리가 반드시 하나 이상 있어야 한다면 src/*/*.ts를 쓰면 됩니다.

셸처럼 *가 점 파일을 건너뛰나요?

아닙니다. 여기서는 앞의 점을 특별 취급하지 않으므로 *가 .env와 .gitignore에도 일치합니다. 배시는 dotglob을 켜지 않는 한 숨기고, 라이브러리에 따라 그 관례를 따르기도 하고 아니기도 합니다. 실제로 패턴을 실행할 도구에서 확인해 보는 편이 좋습니다.

관련 도구