How to Install and Use zoxide in Linux for Smarter and Faster Directory Navigation

Navigating nested directory hierarchies using the standard cd command is one of the most frequent yet tedious activities in daily command-line workflows. Typing long absolute paths, repeatedly pressing Tab for autocompletion, or traversing multiple parent folders with cd ../../../ slows down developers and systems administrators. To solve this navigation bottleneck, modern developers created zoxide.

Written in Rust, zoxide is a smarter, lightning-fast replacement for the traditional cd command. It continuously records the directories you visit most often and calculates a “frecency” score (a combination of frequency and recency). With zoxide, you simply type z followed by a couple of letters from the target folder’s name, and the shell jumps there instantly. Here is a practical tutorial on how to install, configure, and master zoxide on Linux.

How zoxide Reinvents Terminal Navigation

zoxide introduces several substantial ergonomic improvements over standard shell navigation:

  • Frecency Matching Algorithm: Dynamically balances how frequently you visit a folder against how recently you opened it, ensuring your most relevant projects rank highest.
  • Fuzzy Search Filtering: Matches partial substrings and abbreviated directory names (e.g., typing z proj doc jumps straight to ~/Code/my-project/documentation).
  • Interactive Directory Selection: Integrates seamlessly with fzf to present an interactive search menu whenever multiple matching candidates exist.
  • Universal Shell Support: Integrates natively into Bash, Zsh, Fish, Nushell, and POSIX-compliant shells with zero configuration overhead.

Installing zoxide on Linux Distributions

zoxide is packaged across major distribution repositories and via a universal installation script.

Method 1: Official Universal Installer

Open your terminal and run the maintainer’s installation script:

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

Ensure ~/.local/bin is in your system PATH.

Method 2: Ubuntu and Debian

On Ubuntu (22.04 LTS and newer) and Debian:

sudo apt update
sudo apt install zoxide -y
zoxide --version

Method 3: Arch Linux and Fedora

On Arch Linux:

sudo pacman -S zoxide

On Fedora Linux:

sudo dnf install zoxide -y

Configuring Shell Integration

To enable the z alias and automatic directory tracking, hook zoxide into your shell configuration file:

For Bash Users

Append the initialisation hook to ~/.bashrc:

echo 'eval "$(zoxide init bash)"' >> ~/.bashrc
source ~/.bashrc

For Zsh Users

Append the hook to ~/.zshrc:

echo 'eval "$(zoxide init zsh)"' >> ~/.zshrc
source ~/.zshrc

For Fish Users

Append the hook to ~/.config/fish/config.fish:

echo 'zoxide init fish | source' >> ~/.config/fish/config.fish

Core zoxide Commands and Everyday Workflows

Once initialised, zoxide begins learning your habits automatically as you navigate directories:

Command Action Example
z <query> Jump to highest-ranked matching folder z site jumps to /var/www/my-website
z <q1> <q2> Jump using multiple search terms z app conf jumps to ~/Code/app/config
zi <query> Interactive fuzzy menu via fzf zi proj opens live search selector
z - Jump back to previous directory Toggles between active workspaces
zoxide query -l List all indexed paths and frecency scores Audits database directory weights

Managing and Pruning the zoxide Database

If you delete an obsolete project folder or rename a directory, remove it from the zoxide database cleanly:

zoxide remove ~/OldProjects/legacy-repo

To audit and inspect your current database ranking list, run:

zoxide query -l -s

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.