Bash 中提供了操作目录堆栈的命令。
cd -
cd -
可以返回用户上次所在的目录。
pushd, popd
pushd dirname
在进入目录的同时,会将当前目录放入堆栈中:
1 | pushd /a |
popd
命令不带参数时,会进入并移除栈顶目录popd -n
删除栈顶目录,不改变目录popd
和pushd
可以接收整数参数,操作从栈顶(0)算起的目录,不会切换目录
1 | 从栈顶算起的 3 号移动到栈顶 |
命令中的 n
从 0 开始计数,+n
中的索引与 dirs -v
命令显示的索引相同,-n
相反,操作时默认打印出的目录堆栈,左侧为栈顶,右侧为栈底。pushd ±n
用来切换堆栈中的目录,popd ±n
用来删除堆栈中的目录。
dirs
dirs 可以显示目录堆栈的内容,不加参数会打印使用空格隔开的目录栈,参数如下:
- -c : 清空堆栈
- -l :用户目录显示完整路径而不是
~
- -p :打印目录栈,每行一个
- -v : 打印目录栈,每行前都有位置编号,从 0 开始
- +num : 显示栈顶算起的第 num 个目录
- -num : 显示栈底算起的第 num 个目录