在bash中操纵dirstack

时间:2014-03-21 16:21:38

标签: bash

我目前正在按照here所述将CD别名化为函数,但是,我还希望从dirstack中排除$ HOME并防止将重复项添加到dirstack中。无论如何操作dirstack而不更改目录?

1 个答案:

答案 0 :(得分:2)

数组DIRSTACK用于保存pushd添加的条目。您可以分配给阵列的现有元素来修改堆栈(以便在轮到它popd时使用新目录):

$ pushd /etc
/etc ~
$ pushd /usr
/usr /etc /~
$ echo "${DIRSTACK[@]}"
/usr /etc ~
$ DIRSTACK[1]=/var
$ echo "${DIRSTACK[@]}"
/usr /var ~
$ popd
/var
$

但是,其他尝试添加或移除DIRSTACKpushdpopd除外)将无效。