有没有办法直接从任何其他目录转到任何目录?


14

有没有办法直接从任何其他目录转到任何目录?例如,假设我是root,我想直接进入currentProject 而无需这样做

cd dropbox/dev/currentProject



-root
  -dropbox
     -dev
        -currentProject

有办法吗?

Answers:


21

您可以使用诸如autojump之类的东西。通过自动跳转,您可以使用j命令快速跳转到经常访问的目录。

例如,一旦cd进入currentProject目录几次,就可以像这样跳转到它:

j currentProject

您甚至可以只使用目录名称的一部分。因此,您可以执行以下操作:

j current

cdcurrentProject


8

您还可以在$ CDPATH中添加一些常用目录

export CDPATH=$HOME

例如,这将使您可以cd从系统中的任何位置进入主文件夹中的任何目录。

更多


7

这并不能直接回答您的问题,但是如果我正确地推断出您将在目录之间进行大量跳转,则可以使用终端多路复用器(例如GNU Screen)来使不同的目录在不同的窗口中打开,并且只需根据需要在它们之间切换。我个人使用Byobu,它在屏幕顶部添加了一些功能。


1
另请参阅:tmux
Annika Backstrom

5

您可以在bash个人资料中设置别名。基本上,这使您可以用单词缩写命令。您可以设置currentProject实际上指向/ dropbox / dev / currentProject


4

您可以在主目录中创建要链接到的符号链接。

ln -s /dropbox/dev/currentProject ~/currentProject

这样,您仍在使用cd,但不必记住完整路径。只需使用:

cd ~/currentProject

当您停止使用链接时,只需将其删除即可。

rm ~/currentProject

0

正如Wuffers如上所述,autojump可以为你做到这一点。它存储以前访问过的目录的数据库,并允许您使用命令j <a few letters in the directory path>将其移至该目录。还有一个名为autojump的附加命令,该命令jc应符合您的要求。 jc使您可以跳至当前工作目录的先前访问的子目录。因此,您只需访问目录一次即可,直到清除自动跳转数据库。另外,您也可以直接添加它,而不用autojump --add DIR(可能需要从目录树列表中构建添加列表)。


0

在bash和* csh中,有内置命令'pushd'和'popd',它们使您可以将目录推送到后进先出堆栈(带有pushd [directory]),然后使用'popd'快速切换到堆栈中的顶层目录。因此,根据加载堆栈的方式,您也许可以在目录之间快速导航,以使其适合您的功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.