介绍

zoxide 是由 Rust 编写、跨平台终端目录快速跳转工具,对标 autojump / z.sh,性能更强、持续维护,使用 frecency(访问频率 + 最近时间) 算法自动排序目录,支持全部主流的shell。

可以解决路径太长、反复敲完整路径、来回切换目录,目录多层嵌套等传统 cd 的疼点。

GitHub:

https://github.com/ajeetdsouza/zoxide

安装

1. 一键脚本

Linux/macOS/WSL:

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

默认安装到 ~/.local/bin,确保该目录在 $PATH

2. 包管理器

# macOS Homebrew
brew install zoxide

# Ubuntu/Debian
sudo apt install zoxide

# Cargo(已有rust环境)
cargo install zoxide --locked

# Windows Scoop
scoop install zoxide

配置

安装完成后需要在 shell 配置文件加入初始化脚本(这一步不能跳过),重启终端生效。

# Zsh (~/.zshrc)
eval "$(zoxide init zsh)"

# Bash (~/.bashrc)
eval "$(zoxide init bash)"

# Fish (~/.config/fish/config.fish)
zoxide init fish | source

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

写入配置后重载:

# bash
source ~/.bashrc

# zsh
source ~/.zshrc

基础命令

进入目录时,cd / z 都会自动记录路径到数据库

基础跳转

z www               # 跳匹配 www 得分最高目录
z code java         # 同时匹配 code + java
z proj /            # 匹配以proj开头的子目录

# 兼容普通cd语法
z ~/work
z ./target
z ..
z -

交互式选择

zi                  # 列出所有历史目录,上下选择
zi proj             # 预先过滤含proj的目录

辅助工具

zq [path]           # 查询匹配路径、打印分数
za [path]           # 手动添加目录到数据库
zr [path]           # 从数据库删除目录

实用功能

  1. Tab 补全 输入 z pro + 空格 + Tab,弹出候选目录(zsh/bash4.4+/fish 支持)

  2. 安装 fzf 能让体验更佳:

    # 安装fzf
    brew install fzf   #mac
    sudo apt install fzf #ubuntu
  3. 如果你当前在使用下面这些插件,又可能想把数据导入到 zoxide 中,根据每个插件的标准约定,会自动检测数据文件:

    zoxide import <plugin>

    插件

    命令

    atuin

    zoxide import atuin

    autojump

    zoxide import autojump

    fasd

    zoxide import fasd

    z

    zoxide import z

    z.lua

    zoxide import z.lua

    zsh-z

    zoxide import zsh-z

常见问题

  1. 一键脚本安装后 z: command not found 检查 ~/.local/bin 是否在 $PATH

    echo $PATH
    # bash
    sed -i '$a export PATH="/root/.local/bin:$PATH"' ~/.bashrc
    # zsh
    sed -i '$a export PATH="/root/.local/bin:$PATH"' ~/.zshrc
  1. 数据库位置 默认:~/.local/share/zoxide/db.zo