ubin.sh

Glob 테스터

glob·.gitignore 패턴을 파일 경로 목록에 매칭하고, 입력하는 동안 일치 항목을 하이라이트합니다.

/

^src\/(?:.*\/)?[^/]*\.ts$

경로 목록
15개 중 2개 일치
src/index.ts
src/app/page.tsx
src/app/layout.tsx
src/components/Button.tsx
src/components/Button.test.tsx
src/lib/utils.ts
src/styles/main.css
public/favicon.ico
public/logo.svg
README.md
package.json
tsconfig.json
.eslintrc.json
dist/index.js
dist/index.js.map

이 도구에 대해

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 구현은 아닙니다 — 여러 규칙의 순서나 일부 엣지 케이스는 다릅니다. 한 번에 한 패턴이면 기대대로 동작합니다.

관련 도구