Glob 테스터
glob·.gitignore 패턴을 파일 경로 목록에 매칭하고, 입력하는 동안 일치 항목을 하이라이트합니다.
^src\/(?:.*\/)?[^/]*\.ts$
이 도구에 대해
glob 패턴과 파일 경로 목록을 입력하면, 어느 쪽을 편집하든 일치하는 경로가 실시간으로 켜집니다. *, **(디렉터리를 가로지르는 globstar), ?, [abc] 문자 클래스, {a,b} 중괄호, 루트 고정용 선행 /, 디렉터리용 후행 /, 부정용 선행 ! 를 지원합니다. 슬래시가 없는 패턴은 .gitignore처럼 경로의 basename에도 매칭됩니다.
CI 경로 필터, tsconfig의 include/exclude, .gitignore 규칙, 번들러 glob을 커밋 전에 점검할 때 유용합니다. 컴파일된 정규식을 함께 보여줘서 패턴이 정확히 어떻게 해석되는지 알 수 있습니다.
자주 묻는 질문
*와 **의 차이는 무엇인가요?+
단일 *는 한 경로 세그먼트 안에서만 매칭되고 슬래시를 넘지 않습니다. 그래서 src/*.ts는 src/a.ts엔 맞지만 src/sub/a.ts엔 안 맞습니다. globstar **는 디렉터리 경계를 넘으므로 src/**/*.ts는 src 아래 모든 깊이에 매칭됩니다.
*.ts가 왜 src/app.ts에 매칭되나요?+
슬래시가 없는 패턴은 .gitignore처럼 경로의 basename에도 매칭됩니다. 최상위 파일만 매칭하려면 선행 슬래시(/*.ts)로 고정하세요.
디렉터리와 그 안의 모든 것을 매칭하려면?+
dir/** 를 쓰세요 — 디렉터리 자체와 그 아래 모든 경로에 매칭됩니다. 후행 슬래시(dir/)는 디렉터리 항목에 매칭됩니다.
.gitignore 의미를 정확히 따르나요?+
일반적인 경우(globstar, basename 매칭, 부정, 고정)는 다루지만 완전한 git 구현은 아닙니다 — 여러 규칙의 순서나 일부 엣지 케이스는 다릅니다. 한 번에 한 패턴이면 기대대로 동작합니다.