好的,这是一个简短的问题。我只是碰巧知道使用pushd
命令,我们可以将更多工作目录添加到我们的列表中,这很方便。但是有没有办法让这个列表永久化,这样它就可以在重启或注销后继续存在?
~/.bashrc
如果您愿意,您可以预先填充文件中的目录堆栈:
for dir in "$HOME/dir" /usr/src /usr/local/lib; do
pushd -n "$dir" >/dev/null
end
Run Code Online (Sandbox Code Playgroud)
或者,如果您想将目录放在一个数组中并从那里使用它们:
dirstack=( "$HOME/dir"
/usr/src
/usr/local/lib )
for dir in "${dirstack[@]}"; do
pushd -n "$dir" >/dev/null
end
unset dirstack
Run Code Online (Sandbox Code Playgroud)
使用-n
,pushd
不会实际更改工作目录,而只是将给定目录添加到堆栈中。
如果您愿意,您可以将DIRSTACK
数组的值(此处为大写变量名),即当前目录堆栈,存储到来自 的文件中~/.bash_logout
,然后读取该文件,~/.bashrc
而不是使用预定义的数组。
在~/.bash_logout
:
declare -p DIRSTACK >"$HOME/.dirstack"
Run Code Online (Sandbox Code Playgroud)
在~/.bashrc
:
if [ -f "$HOME/.dirstack" ]; then
source "$HOME/.dirstack"
fi
Run Code Online (Sandbox Code Playgroud)
我不知道这在您使用多个终端的情况下效果如何。.dirstack
如果终端bash
作为登录 shell运行,则每次终端退出时该文件都会被覆盖。
归档时间: |
|
查看次数: |
708 次 |
最近记录: |