浏览多层嵌套目录通常很痛苦。在 Firefox 上,这很容易,因为它们有书签。所以我想要为文件添加书签的是输入:
$ go --add classes "repo/www/public/util/classes"
然后,要转到该目录,我需要输入:
$ go classes
以前我使用过符号链接来实现类似的功能,但我不想弄乱我的主目录。还有许多其他功能可能被证明是有用的。例如,我希望能够开始输入go cl
,然后按选项卡自动完成。有时,我签出了存储库的多个副本,因此程序允许我创建多个上下文并设置相对于上下文基目录的书签将很有用。
那么,在我开始拼凑自己的一组脚本之前,是否已经有类似的东西了?
答案1
我想你正在寻找类似的东西自动跳转。您必须花一些时间来制定一组与在给定目录中花费的时间相关的“关键权重”。然后,假设您在“类”目录中花费了很多时间,您可以通过输入直接跳转到那里
j cl
您可以查看您的“关键权重”
jumpstat
答案2
正如 saeedn 提到的,别名是一个很好的机制。 bash shell 还有一个内置机制可以直接跳转到某个位置:CDPATH
。将其设置为PATH
,但它用于cd
代替搜索程序。
$ CDPATH=:~/repo/www/public/util
$ cd classes
/home/casebash/repo/www/public/util/classes
从联机帮助页:
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. A sample value is
".:~:/usr".
我自己将其与一个目录结合起来,该目录具有指向我想去的地方的符号链接:
$ mkdir ~/cdshortcut
$ ln -s ~/repo/www/public/util/classes ~/cdshortcut/classes
$ CDPATH=:~/cdshortcut
/home/casebash/cdshortcut/classes
这样做的缺点是该目录看起来不太正确,但可以使用cd -P
或 设置 来纠正set -P
。
答案3
我寻找 shell 书签工具太久了,我对找到的任何解决方案都不满意。
然而,最终我发现了一个很棒的通用工具:命令行模糊查找器。
它主要允许您“模糊查找”文件(通过上面的链接检查丰富的 gif 动画),但它也允许向其提供任意文本数据并过滤该数据。因此,快捷方式的想法很简单:我们需要的只是维护一个带有路径(即快捷方式)的文件,并模糊过滤该文件。它看起来是这样的:我们输入cdg
命令(来自“cd global”,如果您愿意的话),获取我们的书签列表,只需敲击几下键盘即可选择所需的书签,然后按 Enter。工作目录更改为所选项目:
它非常快速和方便:通常我只需输入所需项目的 3-4 个字母,所有其他内容都已被过滤掉。此外,我们当然可以使用箭头键或Ctrl+j
/浏览列表Ctrl+k
。
有关此快捷方式/书签解决方案的详细文章如下:shell 的模糊快捷方式。
答案4
我自己经常alias
缩短我经常访问的长路径。你可以将你的alias
es组放入你的 中bashrc
,这样 bash 就可以在你每次登录时记住它们。幸运的是 bash 添加了别名来自动完成。
我会为你的情况写这样的东西:alias go-classes="cd ~/repo/www/public/util/classes"