好的,这是一个简短的问题。我只是偶然知道,通过pushd
命令,我们可以在列表中添加更多工作目录,这很方便。但是,有没有一种方法可以使此列表永久存在,从而使其在重新启动或注销后仍然可以生存?
~/.bashrc
如果愿意,可以在文件中预填充目录堆栈:
for dir in "$HOME/dir" /usr/src /usr/local/lib; do
pushd -n "$dir" >/dev/null
end
或者,如果您要将目录放置在数组中,然后从那里使用它们,请执行以下操作:
dirstack=( "$HOME/dir"
/usr/src
/usr/local/lib )
for dir in "${dirstack[@]}"; do
pushd -n "$dir" >/dev/null
end
unset dirstack
使用-n
,pushd
实际上不会更改工作目录,而只是将给定目录添加到堆栈中。
如果愿意,可以将DIRSTACK
数组的值(此处为大写变量名)存储为当前目录堆栈,该数组的值来自中的文件~/.bash_logout
,然后~/.bashrc
使用而不是使用预定义的数组读取该文件。
在~/.bash_logout
:
declare -p DIRSTACK >"$HOME/.dirstack"
在~/.bashrc
:
if [ -f "$HOME/.dirstack" ]; then
source "$HOME/.dirstack"
fi
我不知道在使用多个终端的情况下这种方法的效果如何。如果该.dirstack
文件bash
作为登录shell运行,则每次终端退出时该文件都将被覆盖。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句