通过终端给频繁打开的目录命名
每次我想移动到我经常使用的目录时,我必须输入这个长目录路径:
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 + O和ENTER保存文件。 按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并输入de
( demo-proj
一个方便的子串),直到上一个命令出现。
(reverse-i-search)`de': cd /media/prasanth/01D0F888E7BC91801/github projects #demo-proj
我可以再次按Ctrl R以进行更早的使用。
这不需要设置/替换永久别名。 我也为长命令甚至netstat -tulpn
执行此netstat -tulpn
,我发现它很神秘。