记录一下 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的目录
安装与配置
该命令支持环境 bash 和 zsh 终端
安装
在 ~/.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指向目录而非文件,会导致功能异常。
相关参考
- 类似工具:
autojump、cdargs - 项目主页:github.com/rupa/z/