pushd、pop

类似于cd一样跳转路径的工具。

  • pushed 把当前工作目录压栈,成为栈顶。 或者交换堆栈顺序,是当前工作目录成为新的栈顶。

    没有参数时,只是交换两个目录顺序,使得第二个目录成为栈顶,原栈顶目录下移,成功返回0; 只有当目录堆栈为空返回非零值。

    pushed只会交换最上面两层的目录。或者新加入新的栈。

  • popd 将目录弹出目录栈。

一般格式:

从istion/sample/bookinfo/src/build-services.sh中的shell中学到的。

pushd "$SCRIPTDIR/reviews"
  # 执行一些命令
  pushd reviews-wlpcfg
    # 执行一些命令
  popd
popd
  • 指定弹出第 n 个目录条目

终于搞明白了 “pushd +5” 的意思:原来目录栈是一个循环结构,当把序号为5的栈蛇者为栈顶,那么其后面的序号就从0开始,到了栈底再从最前面的目录条目开始,直到遇到刚刚设立的那个栈顶。

pushd +5
  • 显示目录
# 显示当前栈的情况
dirs
# 也能显示栈的情况,但是呢,会交换栈顶
pushd

在两个目录进行切换时,cd -是一个不错的命令。