为目录创建一个变量,该变量将一直保留到删除

为目录创建一个变量,该变量将一直保留到删除

我目前在 Ubuntu 上使用 bash,并且经常使用保存在 /home/me/path/to/project_dir 中的目录进行工作。每次打开 bash 时都要切换到该目录,这很麻烦。因此,我想将路径保存到一个变量中,例如projdir,这样我就可以执行cd projdir。如果我的工作目录发生变化,我应该能够通过覆盖变量来更改路径。我希望能够轻松更新变量,最好只用一个命令,而不必弄乱 .bashrc。

一件重要的事情是,即使我重新启动 bash,这个变量也应该持续存在。我该怎么做呢?我仍然希望在启动 bash 时看到我的主目录,因此无法将默认起始目录更改为 project_dir 。

答案1

看看 CDPATH 中的内容man bash也许就已经足够了。

否则在 .bashrc 中定义一些别名。我会建议:

alias setp='pwd >~/.projectdir'
alias gop='cd $(cat ~/.projectdir)'

答案2

echo 'PROJDIR="/home/me/path/to/project_dir"' > ~/.projdir
# put the next in e.g. .bashrc
projdir () {
  . ~/.projdir
  cd "$PROJDIR"
}
# change into directory simply by
projdir
# if dir changes just repeat
echo 'PROJDIR="/home/me/path/to/other_project_dir"' > ~/.projdir
# and instantly this works from all shells / consoles:
projdir

答案3

在您的主目录中创建一个符号链接。

ln -s path/to/project_dir ~/p

运行cd p切换到该项目目录。

但这是一个有点麻烦的方法。您可以运行一个 shell 并切换到所需的目录,然后通过运行xterm & disown(替换xterm为您喜欢的任何终端模拟器)来启动其他 shell 。

相关内容