시작 · 배포
설치와 CLI 선택
파일·저장소 검색에는 네이티브 CLI를 사용합니다. npm 경량 CLI는 Node.js에서 UTF-8 텍스트를 검색할 때 사용할 수 있습니다. 두 명령의 이름은 kfind지만, npm CLI는 네이티브 실행 파일을 호출하는 래퍼가 아닙니다.
배포 구성
Homebrew 배포물은 native CLI와 full-POS, enriched predicate, compact component 리소스를 함께 설치합니다. Cargo 설치는 소스에서 native CLI를 빌드하며, 사용자가 배포 리소스 경로를 준비해야 합니다.
npm 패키지 @kfind/kfind는 브라우저 API와 Node.js CLI를 제공합니다. enriched predicate와 compact component는 포함하지만 full-POS는 포함하지 않습니다.
| 항목 | 네이티브 CLI | npm 경량 CLI |
|---|---|---|
| 파일 탐색 | Git ignore, glob, 파일 유형 | 고정 디렉터리 제외, ignore 파일 미적용 |
| 입력 | 스트리밍, 명시적 인코딩 | UTF-8 파일·stdin 전체 적재 |
| 사전 | full POS 사용 가능 | enriched predicate·compact component 포함, full POS 미포함 |
| 일반 출력 | 일치한 줄과 선택적 문맥 | path:line:column:surface |
| JSON | 줄·이벤트 단위 | 개별 일치 단위 |
| offset | byte, encoding 필드 확인 | UTF-16 code unit |
| 부가 기능 | TUI, 집계, agent 설치 | 검색 옵션만 지원 |
npm CLI는 .git, node_modules, target과 탐색 루트 기준 site/build를 제외하고 symlink를 따라가지 않습니다. 나머지 숨김 디렉터리나 ignore 파일에 적힌 파일도 검색 대상이 될 수 있습니다. 큰 파일은 입력 전체를 메모리에 적재하므로 네이티브 CLI를 사용합니다.
같은 질의여도 사전과 탐색 범위가 다르면 결과가 달라질 수 있습니다. 설치를 바꾸는 자동화는 JSON 형식과 좌표를 함께 확인해야 합니다. 뒤의 --check-data, --embedded, --init은 네이티브 전용입니다.
네이티브 설치
macOS와 Linux에서는 개인 tap의 Homebrew formula를 사용합니다. 빌드 도구가 있는 환경에서는 Cargo로 같은 버전의 CLI를 설치할 수 있습니다.
brew install seokminhong/brew/kfind
kfind --version
cargo install --locked --path crates/kfind-cli
npm 설치
Node.js 20 이상에서는 scoped package를 설치합니다. 패키지의 bin 이름은 kfind입니다. 로컬 script, npx, pnpm dlx, Yarn 2 이상의 yarn dlx와 node_modules/.bin에서 같은 명령을 사용합니다.
시험 배포판을 받으려면 @next를 사용합니다. 재현 가능한 설치에는 정확한 버전을 지정합니다.
npm install @kfind/kfind@1.1.0
npx @kfind/kfind 걷다 README.md
pnpm dlx @kfind/kfind 걷다 README.md
yarn dlx @kfind/kfind 걷다 README.md
설치 확인
kfind --version과 kfind --help로 실행되는 CLI의 버전과 지원 옵션을 확인합니다. 네이티브 설치에서는 kfind --check-data로 리소스를 확인합니다. 다음 입력은 두 CLI에서 검색 결과가 있는 종료 코드 0을 반환합니다.
printf '길을 걸었다.\n' | kfind --literal 걸었다
Full-POS 자동 판정, EUC-KR, Git ignore, TUI가 필요하면 native CLI를 사용합니다. npm CLI는 UTF-8 파일과 표준 입력을 다루는 이식 가능한 구성입니다.