本文目录导读:

- 使用
cd别名(最简单) - 创建
jump函数 - 使用 Zoxide(推荐)
- 使用 Fasd 或 Autojump
- 自定义 Bookmark 脚本
- 使用
pushd/popd目录栈 - 终极方案:智能跳转脚本
- 使用工具组合
- 使用建议
使用 cd 别名(最简单)
# 在 ~/.bashrc 或 ~/.zshrc 中添加 alias proj='cd ~/Documents/projects' alias work='cd /var/www/html' alias docs='cd ~/Documents'
创建 jump 函数
# 在 ~/.bashrc 或 ~/.zshrc 中添加
jump() {
case "$1" in
proj) cd ~/Documents/projects ;;
work) cd /var/www/html ;;
doc) cd ~/Documents ;;
down) cd ~/Downloads ;;
desk) cd ~/Desktop ;;
*) echo "未知目录: $1" ;;
esac
}
使用 Zoxide(推荐)
# 安装 curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash # 添加别名到 shell 配置文件 eval "$(zoxide init bash)" # 或 zsh # 使用 z proj # 跳转到最经常访问的匹配目录 zi proj # 交互式选择
使用 Fasd 或 Autojump
# Autojump 安装后使用 j proj # 基于访问频率跳转 jo proj # 用文件管理器打开 # Fasd 使用 z proj # 跳转
自定义 Bookmark 脚本
# 创建书签管理脚本 ~/.bash_bookmarks
bookmark() {
if [ $# -eq 1 ]; then
# 保存当前目录书签
echo "$1 $(pwd)" >> ~/.bookmarks
elif [ "$1" = "list" ]; then
# 列出所有书签
cat ~/.bookmarks
fi
}
goto() {
if [ $# -eq 1 ]; then
cd "$(grep "^$1 " ~/.bookmarks | cut -d' ' -f2-)"
fi
}
使用 pushd/popd 目录栈
# 快速切换常用目录 cd ~/project1 && pushd cd ~/project2 && pushd popd # 回到 project1
终极方案:智能跳转脚本
# ~/.smart_jump.sh
#!/bin/bash
smart_jump() {
# 预定义常用目录映射
declare -A dirs=(
[proj]="$HOME/Documents/Projects"
[www]="/var/www/html"
[logs]="/var/log"
[config]="/etc"
[home]="$HOME"
[tmp]="/tmp"
)
# 如果目录在映射中
if [[ -n "${dirs[$1]}" ]]; then
cd "${dirs[$1]}"
echo "→ 已跳转到: $(pwd)"
return
fi
# 搜索最近访问的目录
if command -v fzf &>/dev/null; then
cd "$(z -l | fzf | awk '{print $2}')"
fi
}
# 绑定快捷键(Ctrl+j)
bind '"\C-j": "smart_jump\n"'
使用工具组合
# 配置 .bashrc
# 组合 fzf + zoxide
fz() {
local dir
dir=$(z -l | fzf --height 40% --preview 'ls {}')
if [ -n "$dir" ]; then
cd "${dir#* }"
fi
}
使用建议
- 最快速方案:直接用 alias 最快速
- 最智能方案:zoxide 或 autojump
- 最可定制:写个自己的函数
选择适合自己的方法,能大大提高工作效率!