![bash shell 中的快速目录导航](https://linux22.com/image/20833/bash%20shell%20%E4%B8%AD%E7%9A%84%E5%BF%AB%E9%80%9F%E7%9B%AE%E5%BD%95%E5%AF%BC%E8%88%AA.png)
我想经常在完全不相关的路径中的目录之间切换,例如/Project/Warnest/docs/
和~/Dropbox/Projects/ds/test/
。
但我不想cd /[full-path]/
一直打字。是否有任何快捷命令可以切换到以前工作的目录?
我能想到的一种解决方案是将环境变量添加到我的bash
.profile
常用目录中,并cd
使用这些变量添加到它们中。
但还有其他解决办法吗?
答案1
答案2
CDPATH
在bash
andksh
和cdpath
in 中有一个 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 docs
将cd 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'