Instead of cd: zoxide
Add zoxide and use z instead of cd for directories you visit often. zoxide remembers where you go and jumps there from a fragment of the name, so z proj replaces a long relative path. You keep cd for exact paths.
Both are for moving between directories in a shell.
Why zoxide is better
- It ranks directories by how often and how recently you use them, then jumps to the best match for a few typed characters.
- zi opens an interactive picker through fzf when several directories match.
- Ordinary paths behave as with cd, so z .. and z - work as expected.
- It works in Bash, Zsh, fish, Nushell and PowerShell, including Git Bash and MSYS2 on Windows.
- It can import history from autojump, fasd, z, z.lua and zsh-z, so you do not start from zero.
When to keep cd
cd stays as the shell built-in and is what scripts use. zoxide is an interactive convenience; it never belongs in a script, because its answer depends on your personal history.
Switching
Install the binary and add one init line to your shell config, such as eval "$(zoxide init bash)". Use z for jumps and keep cd for exact paths, or pass --cmd cd to replace cd itself. Import an older jumper's database with zoxide import.
Watch out
A fuzzy match can land you in the wrong directory when two names are similar, so check the prompt. Replacing cd with --cmd cd can confuse people sharing your terminal. The data file is a record of where you have been on disk.
More newer, better command-line tools
Sources
- zoxide README
- cd (command) (Wikipedia)
- Modern Unix: alternatives to common Unix commands
- A list of new(ish) command line tools (Julia Evans)
Judged on 2026-11-06. See every command-line tools, or all 66 replacements.