通过终端给频繁打开的目录命名

每次我想移动到我经常使用的目录时,我必须输入这个长目录路径:

cd /media/prasanth/01D0F888E7BC91801/github projects 

或者我必须使用gui进入文件夹并打开终端。

是否可以将此长路径分配给单个名称,并通过终端输入

 cd mygitfiles 

到目前为止,在其他答案中已经给出了两个很好的答案,我还有一个可能性:

 ln -s /media/prasanth/01D0F888E7BC91801/github/projects ~/mygitfiles 

将为您家中的长路径创建符号链接。

符号链接就像指向另一个文件或目录的快捷方式,大多数程序会将它们视为正常。 你可以安全地使用符号链接而不影响它指向的路径。 你可以用ls -l观察符号链接指向的位置。

您可以使用符号链接,就好像它是一个真实的目录,并执行cd ~/mygitfiles

请注意,〜只是您的主目录的别名,这可能是这样一个符号链接的合理位置。

请注意,使用此符号链接最终会影响当前的工作目录。

在一般情况下,我会建议Nicolas Delvaux,或Eduardo Cola的答案,但使用符号链接可能是 – 或者可能更有用。

您可以将路径存储在环境变量中。 跑:

 nano $HOME/.bashrc 

转到文件末尾,创建一个新行并写入:

 export mgf="/media/prasanth/01D0F888E7BC91801/github projects" 

按Ctrl + OENTER保存文件。 按Ctrl + X退出。 现在注销并登录。当你打开终端(运行bash)时,你可以运行cd "$mgf"来切换到你的目录。

你应该使用别名。 请参阅help alias

简而言之,您可以通过键入以下内容来定义别名:

 alias whatever="cd /media/prasanth/01D0F888E7BC91801/github/projects" 

然后,键入whatever将移动到定义的文件夹。

您可以将alias命令放在〜/ .bashrc中以永久保存它。

好像你在寻找cdargs 。

它为cd命令提供书签。

您可以通过在已添加书签的目录中执行mark NAME来添加书签。 然后,您可以使用cv NAME从任何地方切换到此目录,其中NAME是书签的名称。

你可以看一下autojump 。 它基本上通过构建您访问的文件夹数据库并为其分配权重来学习:访问文件夹的次数越多,数据库中的权重就越高。

然后,在你几次cd到一个目录(甚至一次足够)后:

 cd /media/prasanth/01D0F888E7BC91801/github projects 

你可以使用j命令跳转到那里:

 j proj 

您可以使用目录名的任何部分作为j命令的参数,它将跳转到匹配的第一个条目,这样当您不记得完整路径时这很有用。

它有一些非常整洁的function,如跳转到子jc )。 我鼓励你检查一下。

Bash有一个方便的小错误称为CDPATH 。 当cd foo查找相对路径时,它默认查找当前目录。 通过将CDPATH设置为以冒号分隔的路径前缀列表,如果未找到匹配项,我们可以转到该目标。 在查找可执行文件时,这与PATH变量的工作方式类似。

在你的情况下,你可以在你的~/.bashrc export CDPATH=.:/media/prasanth/01D0F888E7BC91801/github/ ,然后从任何地方执行cd projects/foo/media/prasanth/01D0F888E7BC91801/github/projects/foo

但是,如果当前目录包含匹配的条目,则此操作无效,因此可能会出现一些令人困惑的错误模式。 有些人发誓这种方法,我自己宁愿选择保罗格罗夫建议的主目录中的符号链接 。

我会打字

 cd /media/prasanth/01D0F888E7BC91801/github projects #demo-proj 

我第一次运行该命令。 #之后的内容是评论。

然后调用它,我会按Ctrl R并输入dedemo-proj一个方便的子串),直到上一个命令出现。

 (reverse-i-search)`de': cd /media/prasanth/01D0F888E7BC91801/github projects #demo-proj 

我可以再次按Ctrl R以进行更早的使用。


这不需要设置/替换永久别名。 我也为长命令甚至netstat -tulpn执行此netstat -tulpn ,我发现它很神秘。