我目前在 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 。