终端:记住工作目录

Dil*_*ral 8 terminal

我将 git repos 存储在不同的目录中,这些目录有很长的路径/opt/too/long/path/to/type/every/time/git-repo,而且cd每次都很难记住加上目录是痛苦和乏味的。(我知道有TAB帮助,但这也会变得乏味。)所以,如果我可以将它存储在pwd某个地方,然后再做类似cd thatgitrepo.

Dop*_*oti 15

在您的主目录中创建一些符号链接:

ln -s /opt/really/long/obnoxiously/long/path/to/some/projectname
Run Code Online (Sandbox Code Playgroud)

此命令将创建一个projectname在您的主目录中调用的链接,您可以进入该链接cd,并且一切都会正常运行。


Ste*_*itt 14

z是一个非常好的“插件”,用于bashor zsh(它包含在Oh My Zsh 中),它跟踪您cd访问的目录,并允许您根据您使用它们的频率使用部分名称快速切换到目录。

所以过一会儿,它就会知道

z git-repo
Run Code Online (Sandbox Code Playgroud)

应该cdgit-repo您最常使用的目录。你可以用路径的一部分来限定它,例如

z d git-repo
Run Code Online (Sandbox Code Playgroud)

甚至

z d git
Run Code Online (Sandbox Code Playgroud)

我发现这比别名更有用,甚至CDPATH因为它可以自行学习并适应我不断变化的习惯。


Jul*_*ier 9

进入目录后,您可以执行以下操作:

repo=`pwd`
Run Code Online (Sandbox Code Playgroud)

后来你做

cd $repo
Run Code Online (Sandbox Code Playgroud)

如果你想下次保留它,你可以这样做:

echo "export repo=`pwd`" >> ~/.profile
Run Code Online (Sandbox Code Playgroud)


egm*_*ont 9

bashCDPATHshell 变量对您来说可能是一个方便的解决方案。诸如cd foo搜索foo在 中列出的目录中调用的子目录的命令CDPATH


Dub*_*ubu 7

只是提到另一个有用的工具,有pushd内置的。和

$ pushd dirname
Run Code Online (Sandbox Code Playgroud)

当前目录将被推送到目录堆栈上(您可以使用 来查看该堆栈dirs)并且当前目录将更改为dirname. 您可以稍后使用popd内置命令更改回最新的(堆栈中的最顶部)目录。

这应该至少适用于 bash、zsh、csh 和 tcsh。

如果您只想更改到之前所在的目录,cd -来帮助您。


cof*_*Mug 5

这就是我要做的;在~/.bashrc(如果使用 Bash)中创建别名:

alias thatgitrepo='cd /opt/a/b/c/d/e/f/g/git-repo'
Run Code Online (Sandbox Code Playgroud)

并用于source .bashrc拥有当前 shell 的别名。