본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

Seek

0

Seek는 David Shnayder가 개발한 매우 빠른 파일시스템 검색 명령줄 도구입니다. 기존 `find` 및 `fd`와 같은 도구들보다 수 배 빠른 성능을 제공하도록 설계되었으며, 인덱스나 데몬 없이 순수한 검색 알고리즘을 사용합니다.

검색명령줄찾기파일시스템

소개

Seek는 David Shnayder가 개발한 매우 빠른 파일시스템 검색 명령줄 도구입니다. 기존 `find` 및 `fd`와 같은 도구들보다 수 배 빠른 성능을 제공하도록 설계되었으며, 인덱스나 데몬 없이 순수한 검색 알고리즘을 사용합니다. 개발자, 파워 유저, 그리고 대규모 파일 시스템에서의 검색을 빠르게 처리하고 싶은 사용자들을 위한 오픈 소스 도구입니다.

상세정보

빠른 경로 검색

파일 이름뿐만 아니라 전체 경로를 기준으로 검색합니다. 부분 문자열 검색과 정규 표현식 검색을 모두 지원하며, 소스 트리, 로그, 모노레포 등 대규모 개발 환경에서 효과적입니다.

검색 결과 필터링

`–files` 또는 `-f` 플래그로 파일만, `–directories` 또는 `-d` 플래그로 디렉토리만 검색 결과에 포함시킬 수 있습니다. `–hidden` 또는 `-h` 플래그로 숨김 파일, `–system` 또는 `-s` 플래그로 시스템 파일도 검색 대상에 포함시킬 수 있습니다.

정규 표현식 지원

`–regex` 옵션을 사용하여 정규 표현식 기반의 패턴 매칭 검색이 가능합니다. 예를 들어 특정 확장자를 가진 파일을 찾는 데 활용할 수 있습니다.

유연한 출력 옵션

`–absolute` 옵션으로 절대 경로를 출력하고, `–plain` 옵션으로 ANSI 이스케이프 시퀀스 없는 일반 텍스트로 출력할 수 있습니다. `–null` 옵션은 NUL로 끝나는 절대 경로를 출력하여 `xargs -0` 등과 같은 파이프라인 처리에 안전합니다.

내장 삭제 기능

`seek delete` 명령을 사용하여 검색된 파일을 바로 삭제할 수 있습니다. 미리보기 모드에서는 `No changes were made…` 힌트를 표시하고, `–apply` 옵션을 추가하면 실제 삭제가 수행됩니다.

설치 방법

Seek는 세 가지 방법으로 설치할 수 있습니다.

  • winget: `winget install dusrdev.Seek` 명령으로 설치
  • GitHub: 최신 릴리스 바이너리 다운로드
  • NuGet: `dotnet tool install Seek –global` 명령으로 전역 설치

기본 사용법

검색어는 위치 인자로 전달합니다. 기본적으로 현재 디렉토리에서 검색을 시작하며, `–root` 옵션으로 검색 시작 지점을 지정할 수 있습니다.

기본 검색:

seek report

특정 루트에서 검색:

seek report --root /path/to/root

정규 표현식 검색:

seek ".*.cs$" --regex

파일만 검색:

seek report --files

디렉토리만 검색:

seek report --directories

삭제 기능 사용

검색 결과를 미리 확인한 후 삭제할 수 있습니다.

seek delete report          # 미리보기 모드
seek delete report --apply  # 실제 삭제 실행
seek delete ".*.tmp$" --regex --apply  # 정규식으로 검색 후 삭제

활용 예시

Seek는 소스 코드 트리에서 특정 파일을 빠르게 찾거나, 개발 워크스페이스에서 특정 확장자의 파일을 검색할 때 유용합니다. 모노레포 환경이나 대규모 프로젝트에서 파일 탐색 시간을 크게 줄일 수 있습니다.

지원 환경 및 제한 사항

Seek는 .NET 10을 기반으로 하며, Windows 환경에서 winget을 통해 설치할 수 있습니다. GitHub README에 따르면 크로스 플랫폼을 지원하는 도구입니다. Seek는 명령줄 인터페이스(CLI)만 제공하며 그래픽 사용자 인터페이스(GUI)는 포함되어 있지 않습니다.

화면으로 보는 주요 기능

Seek 성능 벤치마크 결과

Seek 성능 벤치마크 결과

터미널 창에 표시된 'seek' 명령어의 성능 벤치마크 결과입니다. 'Benchmark 1'은 'seek mp4 -r -h' 명령어의 실행 시간을 평균 4.694초 ± 0.471초로 보여주며, 'Benchmark 2'는 'fd -p -u 'mp4'' 명령어의 실행 시간을 평균 12.609초 ± 1.957초로 보여줍니다. 'Summary' 섹션에서는 'seek mp4 -r -h'가 'fd -p -u 'mp4''보다 2.69 ± 0.50배 더 빠르다고 요약합니다.

시스템 요구사항

Seek는 .NET 10 런타임이 필요한 C# 기반 도구입니다. GitHub README에 따르면 NuGet으로 설치할 경우 지원되는 런타임에서 자동으로 네이티브 AOT 패키지를 설치하며, 지원되지 않거나 일반적인 환경에서는 프레임워크 종속 패키지(Seek.any)가 제공됩니다.