bash shell 中的快速目录导航

bash shell 中的快速目录导航

我想经常在完全不相关的路径中的目录之间切换,例如/Project/Warnest/docs/~/Dropbox/Projects/ds/test/

但我不想cd /[full-path]/一直打字。是否有任何快捷命令可以切换到以前工作的目录?

我能想到的一种解决方案是将环境变量添加到我的bash .profile常用目录中,并cd使用这些变量添加到它们中。

但还有其他解决办法吗?

答案1

如果您只是在两个目录之间切换,则可以使用cd -来回切换。

来自bash(1)手册页:

的一个论点-被转换为$OLDPWD 在尝试更改目录之前。

答案2

CDPATHbashandkshcdpathin 中有一个 shell 变量zsh

CDPATH    The search path for the cd command. This is a colon-separated
          list of directories in which the shell looks for destination
          directories specified by the cd command.

所以你可以在 ~/.bashrc 中设置:

export CDPATH=/Project/Warnest:~/Dropbox/Projects/ds

然后cd docscd test带您到第一个找到的此类目录。 (我的意思是,即使当前目录中存在同名目录,CDPATH仍然会被查询。如果CDPATH将包含更多具有给定名称子目录的目录,则将使用第一个目录。)

答案3

您可以尝试的其他工具是一个名为自动跳转。它保留对其别名的调用数据库(j默认情况下),并尝试对您想去的地方做出明智的决定。例如,如果您经常键入:

j ~/Pictures

您可以使用以下方法在紧要关头到达那里:

j Pic

~/.bashrc它适用于 Debian 和 Ubuntu,并且~/.zshrc默认包含在每个用户的基础上。

答案4

alias在 bashrc 中使用这些 cd。
例如:

alias wdoc='cd ~/Project/Warnest/docs'
alias dstest='cd ~/Dropbox/Projects/ds/test'

相关内容