A faster way to navigate your filesystem
zoxide
is a blazing fast alternative to cd
, inspired by
z
and z.lua
.
It keeps track of the directories you use most frequently, and uses a ranking algorithm
to navigate to the best match.
```sh z foo # cd to highest ranked directory matching foo z foo bar # cd to highest ranked directory matching foo and bar
z foo/ # can also cd into actual directories
zi foo # cd with interactive selection using fzf
zq foo # echo the best match, don't cd
za /foo # add /foo to the database zr /foo # remove /foo from the database ```
zoxide
sh
yay -S zoxide
sh
dnf copr enable atim/zoxide
dnf install zoxide
sh
pkg install zoxide
sh
dnf install zoxide
sh
pkg install zoxide
sh
brew install zoxide
sh
port install zoxide
sh
nix-env -iA nixpkgs.zoxide
sh
xbps-install -S zoxide
powershell
scoop install zoxide
sh
cargo install zoxide -f
Use the installation script:
sh
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/ajeetdsouza/zoxide/master/install.sh | sh
Alternatively, you can also download a precompiled binary from the
releases page and add it to
your PATH
.
fzf
(optional)If you want to use interactive fuzzy selection, you will also need to install
fzf
.
zoxide
to your shellIf you currently use z
, z.lua
, or zsh-z
, you may want to first import
your existing database into zoxide
:
sh
zoxide import /path/to/db
Add the following line to your ~/.bashrc
:
sh
eval "$(zoxide init bash)"
Add the following line to your ~/.config/fish/config.fish
:
sh
zoxide init fish | source
Add the following line to your shell's configuration file:
sh
eval "$(zoxide init posix --hook prompt)"
Add the following line to your profile:
powershell
Invoke-Expression (& {
$hook = if ($PSVersionTable.PSVersion.Major -lt 6) { 'prompt' } else { 'pwd' }
(zoxide init --hook $hook powershell) -join "`n"
})
Add the following line to your profile (usually ~/.xonshrc
):
xonsh
execx($(zoxide init xonsh), 'exec', __xonsh__.ctx, filename='zoxide')
Add the following line to your ~/.zshrc
:
sh
eval "$(zoxide init zsh)"
init
flags--cmd
: change the z
command (and corresponding aliases) to something else--hook <HOOK>
: change the event that adds a new entry to the database
(default: pwd
)
none
: never add entries
(this will make zoxide
useless unless you manually configure a hook)prompt
: add an entry at every promptpwd
: add an entry whenever the current directory is changed--no-aliases
: don't define extra aliases like zi
, zq
, za
, and zr
$_ZO_DATA_DIR
: directory where zoxide
will store its data files
(default: platform-specific; see the [dirs
documentation] for more information)$_ZO_ECHO
: when set to 1
, z
will print the matched directory before navigating to it$_ZO_EXCLUDE_DIRS
: list of directories separated by platform-specific characters
(":
" on Linux/macOS, ";
" on Windows) to be excluded from the database$_ZO_FZF_OPTS
: custom flags to pass to fzf
$_ZO_MAXAGE
: sets the maximum total age after which entries start getting deleted$_ZO_RESOLVE_SYMLINKS
: when set to 1
, z add
will resolve symlinks.