导航多层嵌套目录通常很痛苦。在 Firefox 上,这很容易,因为它们有书签。所以我想为文件添加书签是输入:
$ go --add classes "repo/www/public/util/classes"
Run Code Online (Sandbox Code Playgroud)
然后,要转到这个目录,我会输入:
$ go classes
Run Code Online (Sandbox Code Playgroud)
以前我使用符号链接来实现类似的功能,但我不想弄乱我的主目录。还有许多其他功能可以证明是有用的。例如,我希望能够开始打字go cl,然后点击 Tab 来自动完成。有时,我检出了存储库的多个副本,因此该程序允许我创建多个上下文并设置相对于上下文基目录的书签会很有用。
所以,在我开始拼凑我自己的一套脚本之前,是否已经有这样的东西?
我想使用 bashCDPATH指向我经常访问的目录的符号链接目录。但是,这样做:
export CDPATH="~/symlinks"
Run Code Online (Sandbox Code Playgroud)
导致cd SUBDIR停止工作,如果./SUBDIR和~/symlinks/SUBDIR同时存在; CDPATH目录优先于当前工作目录。
我尝试使用以下方法解决此问题:
export CDPATH=".:~/symlinks"
Run Code Online (Sandbox Code Playgroud)
这确实解决了优先级问题,但现在cd到子目录总是打印其完整路径:
$ pwd
/foo/bar
$ cd baz
/foo/bar/baz
Run Code Online (Sandbox Code Playgroud)
这有点烦人。我知道我可以通过执行来抑制所有cd输出alias cd='> /dev/null cd',但我确实喜欢为其他CDPATH条目(或执行cd -)打印的路径。有什么我可以做的更好的吗?