macOS·Linux·Windows에서 ripgrep(rg) 설치: 정규식 검색과 .gitignore
세 OS에 rg를 설치하고 첫 정규식 검색을 실행하며 .gitignore 필터를 이해합니다.
코드베이스를 빠르게 찾을 때 ripgrep(rg)는 grep -r보다 일상에 맞습니다. 기본적으로 .gitignore를 존중하고 병렬도 빠릅니다. hereink 독자를 위해 macOS·Linux·Windows 공식 설치 경로를 정리합니다.
검색어는 ripgrep 설치와 정규식 검색입니다. 프로젝트 루트에서 첫 rg를 실행하고 무시된 파일이 어떻게 빠지는지 알게 됩니다.
ripgrep가 해결하는 것
grep 함정 줄이기
grep -r는 node_modules, dist, .git까지 들어가 출력이 폭발합니다. rg는 기본으로 .gitignore, .ignore, 전역 무시 규칙을 읽어 심볼 찾기에 적합합니다.
POSIX 전부 외울 필요 없음
Rust 정규식으로 \d, 그룹, 행 시작·끝 등. 문자열, 대소문자, 타입 필터로 대부분의 첫날 작업을 커버합니다.
터미널에서 확인:
rg --version. 공식:github.com/BurntSushi/ripgrep.
세 OS에 rg 설치
- 1macOS(Homebrew)
brew install ripgrep.which rg와rg --version으로 확인. Apple Silicon과 Intel 동일. - 2Linux(배포판)
Debian/Ubuntu:
sudo apt update && sudo apt install ripgrep. Fedora:sudo dnf install ripgrep. Arch:sudo pacman -S ripgrep. 구버전이면 GitHub Releases tarball을 풀어PATH에rg를 넣습니다. - 3Windows
PowerShell 등에서
winget install BurntSushi.ripgrep.MSVC또는 MSI. Scoop:scoop install ripgrep. 새 셸에서rg --version. - 4선택: Rust
Rust가 있으면
cargo install ripgrep. 컴파일은 느리지만 패키지가 없는 환경에 유용.
기본 정규식 검색
rg "useState" src/
rg -i "error" .
rg "^function\s+\w+" --type js
rg -l "TODO" .
rg -n -C 2 "api/v1" 리포지토리 루트에서 rg는 위로 .git을 찾아 경계와 무시 규칙을 적용합니다.
.gitignore와 예외
| 목표 | 명령 | 메모 |
|---|---|---|
| 기본 | rg pattern | .gitignore 경로 건너뜀 |
| 무시된 트리도 | rg --no-ignore pattern | 빌드 결과·로컬 설정용. 출력 많음 |
| 추가 제외 | rg --glob '!*.min.js' foo | 무시 규칙 위에 필터 |
| 확장자만 | rg -t py "def main" | --type-list로 타입 목록 |
- 맞음
- monorepo에서 컴포넌트명·환경 변수·TODO 찾기. CI 로그에서 파일 추적.
- 안 맞음
- 일괄 편집(편집기나
sd/sed). 큰 바이너리 전체 색인.
rg가 grep을 완전 대체하나요?
아닙니다. rg는 무시 규칙 있는 디렉터리 검색, grep은 파이프·단일 파일에 강합니다. 둘 다 쓰는 팀이 많습니다.
node_modules 안이 안 보이나요?
node_modules는 보통 .gitignore에 있습니다. rg --no-ignore나 해당 폴더에서 직접 검색하세요. 더 느리고 출력이 많습니다.
Windows에서 rg를 못 찾나요?
설치 후 터미널을 다시 엽니다. where rg. 수동 zip은 PATH에 폴더를 추가해야 합니다.
검색 후 한 장에 맞추기
터미널로 파일을 찾아도 설계는 한 그림에 맞추기 쉽습니다. 짧은 방에 추가 스택은 필요 없습니다. 공간 만들기를 보세요.