z 命令速查手册

55 阅读2分钟

记录一下 z 命令用法文档

语法

z [-chlrtx] [正则表达式1 正则表达式2 ... 正则表达式n]

功能

  • 智能目录跳转:通过学习用户常用目录,基于"访问频率+最近使用"(frecency)综合评分,快速跳转到匹配的目录。
  • 匹配规则:按命令行给出的正则表达式顺序匹配完整路径(如 z foo bar 匹配 /foo/bar,而非 /bar/foo)。

选项

选项功能
-c仅匹配当前目录的子目录
-e仅显示最佳匹配目录,不跳转
-h显示简要帮助信息
-l仅列出匹配目录(按 frecency 排序)
-r仅按历史排名(频率)匹配
-t仅按最近访问时间匹配
-x从数据库中移除当前目录

示例

  • z foo → 跳转到匹配 foo 的最高 frecency 目录
  • z -t foo → 跳转到最近访问的匹配 foo 的目录
  • z -l bar → 列出所有匹配 bar 的目录

安装与配置

该命令支持环境 bashzsh 终端

安装

~/.bashrc~/.zshrc 中添加:

. /path/to/z.sh

使用 cd 命令一段时间以积累目录数据。

配置(需在加载 z.sh 前设置):

  • _Z_CMD:自定义命令名(默认 z
  • _Z_DATA:指定数据库文件路径(默认 ~/.z
  • _Z_MAX_SCORE:调整数据老化速度(默认 9000)
  • _Z_EXCLUDE_DIRS:排除指定目录(数组格式,如 ("/tmp" "/mnt")

功能

  • 数据老化
    目录访问次数增加其权重,总权重超过 9000 时所有权重乘以 0.99,权重低于 1 的条目被移除。
  • Frecency 算法
    结合访问频率(frequency)和最近使用(recent),动态计算权重,最近访问的目录可能比高频旧目录优先级更高。
  • 共同前缀优先
    当多个目录匹配时,优先跳转最短路径的目录。

环境变量

  • _Z_DATA:控制数据库文件位置。
  • _Z_NO_RESOLVE_SYMLINKS:禁止解析符号链接。
  • _Z_EXCLUDE_DIRS:排除不跟踪的目录(如系统目录)。
  • _Z_OWNER:允许在 sudo -s 模式下使用。

文件

  • 数据库默认位置:~/.z(可通过 _Z_DATA 修改)
  • 手册页:z.1(需手动安装到 MANPATH

注意事项

  • Tab 补全:仅最后一个参数支持补全,且若参数以 / 开头可能触发意外行为。
  • 常见问题:若 _Z_DATA 指向目录而非文件,会导致功能异常。

相关参考