Forgetful Alann

In youth we learn, in age we understand.

0%

目录堆栈


Bash 中提供了操作目录堆栈的命令。

cd -


cd - 可以返回用户上次所在的目录。

pushd, popd


  • pushd dirname在进入目录的同时,会将当前目录放入堆栈中:
1
2
pushd /a
pushd /b
  • popd 命令不带参数时,会进入并移除栈顶目录
  • popd -n 删除栈顶目录,不改变目录
  • popdpushd 可以接收整数参数,操作从栈顶(0)算起的目录,不会切换目录
1
2
3
4
5
6
7
8
# 从栈顶算起的 3 号移动到栈顶
pushd +3
# 从栈底算起的 3 号移动到栈顶
pushd -3
# 删除从栈顶算起的 3 号目录
popd +3
# 删除从栈底算起的 3 号目录
popd -3

命令中的 n 从 0 开始计数+n 中的索引与 dirs -v 命令显示的索引相同,-n 相反,操作时默认打印出的目录堆栈,左侧为栈顶,右侧为栈底。pushd ±n 用来切换堆栈中的目录popd ±n 用来删除堆栈中的目录

dirs


dirs 可以显示目录堆栈的内容,不加参数会打印使用空格隔开的目录栈,参数如下:

  • -c : 清空堆栈
  • -l :用户目录显示完整路径而不是~
  • -p :打印目录栈,每行一个
  • -v : 打印目录栈,每行前都有位置编号,从 0 开始
  • +num : 显示栈顶算起的第 num 个目录
  • -num : 显示栈底算起的第 num 个目录