(薄荷 19.1,基于 Ubuntu 18.04)
我有一个经常访问但路径很长的目录。我已经厌倦了打字,所以我希望能够轻松地跳转到这个目录。我能想到的最简单的方法是在 中创建别名.bashrc
,例如:
alias goto_project="cd /projectdir"
这有效,但只有在我想使用时才有效cd
。我认为在路径中添加符号链接会更通用,/projectdir
这样我就可以全局使用cd project
或mv file project
(将文件移动到目录)或某些rsync
调用之类的命令。我尝试将目录的符号链接放入/usr/local/bin
(我使用过ln -s /projectdir /usr/local/bin/projects
)。但是,这似乎无法cd project
按预期使用。例如,调用which projects
不会产生任何结果。
这种方法不可能吗?也许是因为它可能会产生冲突?
别名用于命令 - 您需要的是一个引用您的长目录名称的简单变量。将这样的内容添加到您的 ~/.bashrc 中:
现在,类似
ls "$shortdir"
or的命令du "$shortdir"
会给你你想要的。使用 bash,您就有了
CDPATH
变量。关于它的说法如下:如果你有
/my/super/very/long/path/to/projectdir
然后如果你把/my/super/very/long/path/to/
,CDPATH
一个cd projectdir
从层次结构中的任何地方都会让你去特定的/my/super/very/long/path/to/projectdir
。它有缺点(可能发生冲突),但我用它来指向我所有 git 工作树的顶部,这样我就可以切换到它们只知道(或实际上是自动完成)它们的名称,而不管它们实际存储在哪里。
它当然只解决了问题的“简单的 cd 方法”部分,而不是以某种任意符号方式引用某个名称以供所有命令操作的全局问题。
您可能还想看看
pushd
/popd
他们可以在某些情况下提供帮助。创建符号链接时,它允许您从创建它的位置访问目录。例如,在您的情况下,它允许您做
cd /usr/local/bin/projects
而不是,cd /projectdir
这取决于项目路径的长度可以节省一些击键。例如
cd /my/super/very/long/path/to/projectdir
,与cd ~/projectdir
您之前是否使用ln -s /my/super/very/long/path/to/projectdir ~/projects
.除此之外,ajgringo619 解决方案是唯一想到的。