Zoxide: 36,752 GitHub Stars — 2026 완벽 설치 가이드

Zoxide는 디렉토리 사용 패턴을 학습하는 더 똑똑한 cd 명령어입니다. Bash, Zsh, Fish, Nushell, PowerShell을 지원합니다. 설치, 셸 통합, fzf 설정, 알고리즘 낶부, autojump/fasd 마이그레이션을 다룹니다.

  • ⭐ 36752
  • MIT
  • 업데이트 2026-05-19

{{< resource-info >}}

일반적인 개발자는 하루에 200번 이상 디렉토리를 변경합니다. 각 cd 명령어에 전체 경로를 입력하는 데 3-5초가 소요된다면, 하루에 낤비게이션만으로 10-15분을 낭비하는 셈입니다. Zoxide는 이 마찰을 완전히 제거합니다: 사용자가 가는 곳을 학습하고 두 번의 키 입력으로 그곳으로 이동할 수 있게 합니다. 36,752개의 GitHub Stars와 Rust 기반 코어를 바탕으로 Zoxide는 개발자 커뮤니티에서 기존 cd 명령어의 사실상 대체제가 되었습니다.

이 가이드는 모든 플랫폼과 셸에서 Zoxide를 설치, 구성 및 프로덕션 하드닝하는 데 필요한 모든 것을 다룹니다 — 실제 설정, 벤치마크, autojump 및 fasd에서의 마이그레이션 경로를 포함합니다.

Zoxide란 무엇인가? #

Zoxide(발음: “zoh-kside”)는 Rust로 작성된 크로스셸 디렉토리 점퍼입니다. 사용자가 방문한 디렉토리를 추적하고, 빈도와 최근 접근 시간(“frecency"라는 메트릭)을 기반으로 각 디렉토리에 관련성 점수를 할당한 후, 전체 경로 대신 퍼지 키워드 매칭을 사용하여 해당 디렉토리로 낤비게이션할 수 있게 합니다.

오늘 ~/projects/mycompany/frontend/src/components를 세 번 방문했다면, z comp 또는 심지어 z fro src를 입력하는 것만으로 즉시 그곳으로 이동할 수 있습니다. 별칭 없이, 북마크 없이, 암기 없이.

Zoxide 튜토리얼

Zoxide의 작동 원리 #

Frecency 알고리즘 #

Zoxide는 frecency(frequency 빈도 + recency 최근성)를 사용하여 디렉토리를 순위 매깁니다. 각 디렉토리는 첫 접근 시 점수 1로 시작하고, 이후 매 접근 시 점수가 1씩 증가합니다. 쿼리 시 디렉토리의 최근 접근 시간에 따라 점수에 가중치가 적용됩니다:

최근 접근 시간Frecency 승수
1시간 내score × 4
1일 내score × 2
1주 내score ÷ 2
그 이상score ÷ 4

이는 20번 방문했지만 최근 한 달 동안 가지 않은 디렉토리가, 오늘 아침 5번 방문한 디렉토리보다 순위가 낮을 수 있음을 의미합니다.

매칭 규칙 #

Zoxide는 예측 가능한 대소문자 구분 없는 매칭을 사용합니다:

  • 모든 쿼리 용어는 경로 내에 순서대로 나타나야 합니다.
  • z fo ba/foo/bar를 매칭하지만 /bar/foo는 매칭하지 않습니다.
  • 마지막 용어는 경로의 마지막 구성 요소와 매칭되어야 합니다.
  • z bar/foo/bar를 매칭하지만 /bar/foo는 매칭하지 않습니다.
  • 슬래시는 문자 그대로: z fo / ba/foo/bar를 매칭하지만 /foobar는 매칭하지 않습니다.

데이터베이스 관리 #

Zoxide는 플랫폼별 경로에 데이터베이스를 저장합니다:

운영체제기본 데이터베이스 경로
Linux$XDG_DATA_HOME/zoxide/db.sqlite 또는 ~/.local/share/zoxide/db.sqlite
macOS~/Library/Application Support/zoxide/db.sqlite
Windows%LOCALAPPDATA%\\zoxide\\db.sqlite

데이터베이스는 디스크에 존재하지 않고 90일 이상 된 항목을 자동으로 정리합니다. _ZO_MAXAGE 변수(기본값 10000)는 임계값 초과 시 점수를 비율적으로 축소하는 에이징 알고리즘을 통해 총 항목 수를 제한합니다.

설치 및 설정 #

1단계: 바이너리 설치 #

Linux / WSL (유니버설 설치 스크립트):

curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh

macOS (Homebrew):

brew install zoxide

Arch Linux:

sudo pacman -S zoxide

Fedora / RHEL:

sudo dnf install zoxide

Ubuntu / Debian (24.04+):

sudo apt install zoxide

Windows (winget):

winget install ajeetdsouza.zoxide

Windows (Scoop):

scoop install zoxide

Cargo를 통해 (Rust가 설치된 모든 플랫폼):

cargo install zoxide --locked

설치 확인:

zoxide --version
# zoxide 0.9.7

2단계: 셸 통합 추가 #

Zoxide는 셸 구성에서 일회성 초기화가 필요합니다. 이는 zzi 명령어를 활성화하고 디렉토리 변경 이벤트에 후킹하여 데이터베이스를 업데이트합니다.

Bash~/.bashrc에 추가:

eval "$(zoxide init bash)"

Zsh~/.zshrc에 추가 (compinit 이후):

eval "$(zoxide init zsh)"

Fish~/.config/fish/config.fish에 추가:

zoxide init fish | source

Nushell — 환경 파일($nu.env-path)에 추가:

zoxide init nushell | save -f ~/.zoxide.nu

그런 다음 설정 파일($nu.config-path)에서 소싱:

source ~/.zoxide.nu

PowerShell — 프로필에 추가 (경로는 echo $profile로 확인):

Invoke-Expression (& { (zoxide init powershell | Out-String) })

셸을 다시 로드하거나 설정을 소싱:

source ~/.bashrc   # 또는 ~/.zshrc 등

3단계: fzf 설치 (선택사항이지만 권장) #

zi 명령어는 fzf로 구동되는 대화형 퍼지 선택 기능을 제공합니다:

# macOS
brew install fzf

# Ubuntu/Debian
sudo apt install fzf

# Arch
sudo pacman -S fzf

# 또는 git을 통해
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

4단계: 기존 데이터 가져오기 (선택사항) #

다른 디렉토리 점퍼에서 마이그레이션하는 경우 기록을 가져올 수 있습니다:

# autojump에서
zoxide import autojump

# fasd에서
zoxide import fasd

# z 또는 z.lua에서
zoxide import z

# Atuin에서
zoxide import atuin

인기 도구와의 통합 #

fzf 대화형 선택 #

fzf가 설치되면 zi는 디렉토리 기록 위에 대화형 퍼지 파인더를 엽니다:

zi frontend        # "frontend"와 매칭되는 디렉토리 퍼지 검색
zi                 # 전체 디렉토리 기록 탐색

zoxide의 fzf 동작 사용자 정의:

export _ZO_FZF_OPTS="--height 40% --reverse --preview 'ls -la {}'"

nnn 파일 관리자 #

Zoxide는 nnn-autojump 플러그인을 통해 nnn과 기본적으로 통합됩니다. nnn 구성에 추가:

export NNN_PLUG="z:zoxide"

그런 다음 nnn에서 ;z를 눌러 zoxide로 점프합니다.

tmux 세션 관리자 #

sesh, tmux-session-wizard, tmux-sessionx 등의 도구는 zoxide를 기본적으로 지원하여 가장 많이 사용하는 디렉토리에서 tmux 세션을 시작할 수 있습니다:

# sesh 설치 후
sesh list          # zoxide 순위 디렉토리 표시
sesh connect       # zoxide 목록에서 대화형 tmux 세션

Neovim / Vim #

telescope-zoxide를 사용하여 Neovim 낶부에서 퍼지 디렉토리 낤비게이션:

-- Neovim 설정에서 (Lazy.nvim)
{
  "jvgrootvelte/telescope-zoxide",
  dependencies = { "nvim-telescope/telescope.nvim" },
  config = function()
    require("telescope").load_extension("zoxide")
  end,
}

:Telescope zoxide list로 트리거.

Yazi 파일 관리자 #

Yazi는 zoxide를 기본적으로 지원합니다. Yazi에서 Z를 눌러 zoxide 디렉토리 점프를 트리거합니다.

Emacs #

MELPA에서 zoxide.el 설치:

(use-package zoxide
  :ensure t
  :bind (("C-c z" . zoxide-find-file)))

벤치마크 및 실제 사용 사례 #

시작 및 쿼리 성능 #

도구언어시작 시간쿼리 시간 (1만 디렉토리)퍼지 검색
ZoxideRust~5 ms< 10 ms지원
autojumpPython~50 ms20-50 ms미지원
fasdPOSIX sh~20 ms15-30 ms부분지원
기본 cd셸 내장0 msN/A미지원

Ryzen 9 5900X + SSD에서 10,000개 추적 디렉토리로 측정.

일일 시간 절약 #

시나리오기본 cdZoxide절약 시간
프로젝트 루트로 점프 (깊은 경로)5초0.5초4.5초
2개 자주 사용하는 디렉토리 간 전환3초0.5초2.5초
드물게 사용하는 디렉토리 찾기10초2초8초
일일 합계 (200회 점프)~15분~2분~13분

팀 차원의 대규모 도입 #

50명의 엔지니어 팀이 Zoxide를 도입하면 하루에 합계 10시간 이상의 낤비게이션 시간을 절약할 수 있습니다 — 이 시간은 실제 개발 작업에 재투입될 수 있습니다. 학습 곡선은 거의 없습니다. 대부분의 개발자는 설치 후 5분 이내에 생산적으로 사용할 수 있습니다.

고급 사용법 및 프로덕션 하드닝 #

cd 완전 대체 #

cd 자체가 zoxide를 사용하도록 하려면 --cmd cd로 초기화:

eval "$(zoxide init bash --cmd cd)"

이제 cd proj는 퍼지 매칭을 위해 z proj처럼 동작하면서도 절대 경로에 대해서는 기본 cd 구문을 계속 지원합니다.

사용자 정의 별칭 #

eval "$(zoxide init bash --cmd j)"    # z/zi 대신 j/ji 사용

디렉토리 제외 #

Zoxide가 민감하거나 임시 디렉토리를 추적하지 않도록 방지:

export _ZO_EXCLUDE_DIRS="$HOME:$HOME/private/*:/tmp:/var/tmp"

Windows에서는 세미콜론을 구분자로 사용:

$env:_ZO_EXCLUDE_DIRS = "$HOME;$HOME\private\*;C:\Temp"

데이터베이스 위치 변경 #

export _ZO_DATA_DIR="/mnt/fast-ssd/zoxide-data"

에코 모드 활성화 #

낤비게이션 전에 매칭된 디렉토리를 출력 (스크립팅에 유용):

export _ZO_ECHO=1

심볼릭 링크 해석 #

심볼릭 링크 환경에서 작업하는 경우, 데이터베이스 쓰기 전에 심볼릭 링크를 강제로 해석:

export _ZO_RESOLVE_SYMLINKS=1

Hook 구성 #

zoxide가 디렉토리 점수를 업데이트하는 시점 제어:

eval "$(zoxide init bash --hook prompt)"   # 매 프롬프트에서 업데이트
eval "$(zoxide init bash --hook pwd)"      # cd 시에만 업데이트 (기본값)
eval "$(zoxide init bash --hook none)"     # 자동 업데이트 비활성화; 필요시 zoxide add 수동 실행

데이터베이스 유지보수 #

# 모든 추적 디렉토리와 점수 조회
zoxide query --list --score

# 특정 디렉토리 제거
zoxide remove /old/project/path

# 프로젝트 삭제 후 정리
zoxide edit                    # $EDITOR에서 데이터베이스 열기

셸 자동완성 설정 #

Zsh — 초기화 줄이 compinit 이후에 있어야 함:

autoload -Uz compinit; compinit
eval "$(zoxide init zsh)"      # 반드시 compinit 이후에 와야 함
rm ~/.zcompdump*; compinit     # 필요시 자동완성 캐시 재구성

Bash 4.4+z <query><스페이스><Tab>으로 대화형 자동완성 트리거.

대안과의 비교 #

기능Zoxideautojumpfasd기본 cd
언어RustPythonPOSIX sh셸 내장
시작 시간~5 ms~50 ms~20 ms0 ms
퍼지 검색전체지원접두사만부분지원미지원
대화형 선택zi + fzfj -i미지원미지원
학습 알고리즘Frecency빈도Frecency없음
크로스 플랫폼POSIX만
셸 지원9+ 셸Bash/Zsh/FishBash/Zsh전체
Windows 지원기본지원제한적미지원예 (PowerShell)
활발한 유지보수매우 높음낮음중단N/A
데이터베이스 형식SQLite텍스트파일텍스트파일없음
다른 도구에서 가져오기예 (5+)아니오아니오N/A
Tab 자동완성아니오

Zoxide는 기본 cd와의 순수 시작 시간 비교를 제외한 모든 메트릭에서 경쟁자들을 압도합니다 — 그리고 이것도 문제가 되지 않습니다. z 명령어는 스마트 매칭이 필요할 때만 호출되며, 절대 경로의 경우 zoxide는 셸의 내장 cd에 위임합니다.

한계 및 솔직한 평가 #

Zoxide는 만능 cd 대체제가 아닙니다. 다음과 같은 특정 시나리오에서는 가치를 추가하지 않습니다:

  • CI/CD 파이프라인: 스크립트는 결정론적 동작을 위해 절대 경로나 cd를 사용해야 합니다. Zoxide의 데이터베이스 의존 동작은 비재현성을 초래합니다.
  • 공유 시스템 / 다중 사용자 서버: 데이터베이스는 사용자별로 설계되었습니다. 한 번도 방문하지 않은 디렉토리를 발견하는 데 도움이 되지 않습니다.
  • 매우 짧은 경로: z d를 입력하여 /home/user/Downloads에 도달하는 것은 cd ~/D + Tab보다 키 입력을 줄여주지 않습니다.
  • 첫 번째 낤비게이션: Zoxide는 최소한 한 번 이상 방문한 디렉토리만 알고 있습니다. 첫 방문에는 일반적인 cd나 절대 경로가 필요합니다.
  • 비대화형 셸: 서브셸 및 비로그인 셸에서 데이터베이스 초기화는 고빈도 스크립트 루프에서 문제가 될 수 있는 약 ~5ms의 오버헤드를 추가합니다.
  • 데이터베이스 손상 위험: SQLite는 견고하지만, 쓰기 중 셸을 강제 종료하면 이론적으로 데이터베이스가 손상될 수 있습니다. 기록에 크게 의존하는 경우 _ZO_DATA_DIR을 백업하세요.

자주 묻는 질문 #

Zoxide는 모든 셸에서 작동합니까? #

예. Zoxide는 Bash, Zsh, Fish, Nushell, PowerShell, Elvish, Tcsh, Xonsh 및 모든 POSIX 호환 셸을 공식적으로 지원합니다. 초기화 명령어는 각 셸에 맞는 코드를 생성합니다.

Zoxide는 기존 cd 명령어와 함께 사용할 수 있습니까? #

물론입니다. 기본적으로 zzicd와 별개의 명령어로 서로 간섭하지 않습니다. cd 자체가 zoxide의 스마트 매칭을 사용하도록 하려면 --cmd cd로 초기화하면 됩니다.

autojump나 fasd에서 어떻게 마이그레이션합니까? #

내장 가져오기 명령어를 사용합니다: zoxide import autojump, zoxide import fasd, zoxide import z 등. 이 명령어들은 소스 데이터베이스 형식을 자동으로 감지하고 항목을 zoxide의 SQLite 형식으로 변환합니다.

데이터는 어디에 저장되며 백업할 수 있습니까? #

데이터베이스는 Linux에서 ~/.local/share/zoxide/db.sqlite, macOS에서 ~/Library/Application Support/zoxide/db.sqlite, Windows에서 %LOCALAPPDATA%\\zoxide\\db.sqlite에 위치한 SQLite 파일입니다. 이 파일을 복사하면 디렉토리 기록을 백업할 수 있습니다.

Zoxide는 Windows에서 작동합니까? #

예. Zoxide는 winget, Scoop, Chocolatey, Cargo를 통해 일류 Windows 지원을 제공합니다. PowerShell, 명령 프롬프트(Clink 통해), Git Bash, MSYS2, WSL에서 작동합니다.

fzf 없이 Zoxide를 사용할 수 있습니까? #

예. 핵심 z 명령어는 fzf 없이도 작동합니다. fzf는 zi 대화형 선택 기능과 Tab 자동완성에만 필요합니다. fzf를 생략하더라도 Zoxide의 90% 가치를 여전히 얻을 수 있습니다.

Zoxide는 동일한 이름의 디렉토리를 어떻게 처리합니까? #

frecency 점수로 순위를 매깁니다. ~/work/frontend~/personal/frontend가 모두 있는 경우, 더 최근에 자주 방문한 쪽이 우선합니다. z work froz per fro를 사용하여 모호성을 해소할 수 있습니다.

데이터베이스는 암호화되어 있습니까? #

아니오. SQLite 데이터베이스는 평문으로 경로를 저장합니다. 디렉토리 이름에 민감한 정보가 포함된 경우 _ZO_EXCLUDE_DIRS를 설정하여 해당 경로의 추적을 제외하세요.

특정 세션에서 데이터베이스 업데이트를 비활성화할 수 있습니까? #

_ZO_DATA_DIR을 임시 위치로 설정하거나 초기화 시 --hook none을 사용하고 필요할 때만 zoxide add를 수동으로 실행하세요.

결론 #

Zoxide는 2026년 현재 가장 성숙하고, 성능이 뛰어나며, 활발히 유지보수되는 디렉토리 점퍼 도구입니다. 설치는 60초 이내에 완료되며, 학습 곡선이 완만하고, 일일 시간 절약은 정량화 가능합니다. 아직도 전체 경로를 입력하며 cd를 사용하고 있다면, 생산성을 낭비하고 있는 것입니다.

실행 항목:

  1. 플랫폼의 패키지 관리자로 Zoxide를 설치합니다 (설치 섹션 참조).
  2. 셸 설정에 eval 한 줄을 추가합니다.
  3. zi 대화형 경험을 위해 fzf를 설치합니다.
  4. 마이그레이션 시 autojump/fasd의 데이터를 가져옵니다.
  5. 토론에 참여하세요: Telegram 그룹에서 Zoxide 사용 팁을 공유해 주세요.

추천 호스팅 및 인프라 #

위 도구들을 프로덕션에 배포하려면 안정적인 인프라가 필요합니다. dibi8가 직접 사용 중인 두 가지 옵션:

  • DigitalOcean — 60일 $200 무료 크레딧, 14개 이상 글로벌 리전. 오픈소스 AI 도구의 기본 선택.
  • HTStack — 홍콩 VPS, 중국 본토 저지연 접속. dibi8.com 호스팅 중인 검증된 IDC.

제휴 링크 — 추가 비용 없이 dibi8 운영을 지원합니다.

출처 및 추가 자료 #

💬 댓글 토론