好的,这是一个简短的问题。我只是碰巧知道通过pushd
命令,我们可以将更多工作目录添加到列表中,这很方便。但是有没有办法让这个列表永久存在,这样它就可以在重新启动或注销后继续存在?
答案1
~/.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 运行,则每次退出时该文件都会被覆盖。