在 Ubuntu 终端中,我发现每次计算机启动时我都会花费大量时间切换到特定目录。有什么方法可以让这个过程更容易吗?是否有一些我可以使用的热键或一些快速目录更改(例如电话上的快速拨号)?
eg:
cd 1:Changes to saved directory one
Run Code Online (Sandbox Code Playgroud)
Ger*_*ger 20
也看看autojump,它用以前访问过的目录构建一个数据库,然后你可以跳转到它。所以例如你有
/home/user/this/long/and/annoyingly/deep/directory/workstuff
Run Code Online (Sandbox Code Playgroud)
那么如果你曾经访问过它,你可以通过以下方式跳转到它
j workstuff
Run Code Online (Sandbox Code Playgroud)
甚至
j stuff
Run Code Online (Sandbox Code Playgroud)
因为它也适用于部分匹配。如果有多个目录匹配,则跳转到访问量最大的目录,如果这不是您想要的目录,则重复该命令转到第二个目录。
不过越来越好了!如果你也有目录
/home/user/stuff
Run Code Online (Sandbox Code Playgroud)
你也是
j stuff
Run Code Online (Sandbox Code Playgroud)
然后TabTabTab你得到(按访问次数最多的顺序)
$ j stuff__
stuff__1__/home/user/this/long/and/annoyingly/deep/directory/workstuff
stuff__2__/home/user/stuff
Run Code Online (Sandbox Code Playgroud)
然后你就可以按你想要的目录号了!
要安装,您可以使用sudo apt-get install autojump,然后您需要添加
source /usr/share/autojump/autojump.bash
Run Code Online (Sandbox Code Playgroud)
到您的~/.bashrc.
这里有更多信息:https : //github.com/wting/autojump(还有关于如何从 src 安装它的说明,它为您提供最新版本)
Dan*_*Dan 14
有两种选择:
如果您希望每次打开 bash 终端时都在特定目录中,请编辑您的~/.bashrc文件并添加行cd Directory,例如cd ~/Desktop.
如果你想有几个捷径,你总是可以使用全局变量,你可以在你的~/.bashrc文件中设置如下export a=/tmp,然后你就可以做到cd $a这会让你进入/tmp.
请记住,编辑.bashrc文件后,您必须重新启动终端或打开一个新终端。
Bash别名对于创建常用命令的快捷方式很有用。
在 中~/.bashrc,添加类似于以下内容的行以创建别名:
alias jump1='cd /long/path/name/that/is/frequently/used'
Run Code Online (Sandbox Code Playgroud)关闭并再次打开终端,或运行source ~/.bashrc.
从现在开始,您只需运行jump1即可执行该长cd命令。
也可以看看:
小智 5
尽管已经有一些很好的答案,但为了完整性,我想我应该提到旧的pushd和popdBash 内置函数,它们允许您在文件系统的深层路径中的目录之间快速移动。与Burger.gaautojump提到的书签相比,使用创建的目录堆栈只是临时的。pushd
正如 GNU手册所述,pushd和popd是 Bash 内置命令,用于构造临时目录堆栈,该堆栈是
最近访问的目录列表。Pushd 内置函数在更改当前目录时将目录添加到堆栈中,而 popd 内置函数从堆栈中删除指定的目录并将当前目录更改为删除的目录。dirs 内置命令显示目录堆栈的内容。
这需要一些时间来适应,但是这个博客和这个网站上有很多有用的教程。这些命令没有单独的手册页,因为它们包含在 Bash 手册页中,但为了快速参考,您可以查看GNU Bash页面。
最清晰的解释在这篇非常有用的文章pushd中,这正是我使用and的方式popd:
首先,使用dirs或dirs -l列出堆栈上的目录并dirs -c清除堆栈。
从某种意义上说,您可以通过输入来为要返回的位置添加书签
pushd /home/mike/Pictures/Canon/2012_07_01
Run Code Online (Sandbox Code Playgroud)
然后你可以添加更多的目录到堆栈中,这样你就会得到如下的目录列表,其中包括 3 个指定的文件夹和你的~主文件夹:
dirs
~/Downloads/folder/interest ~/Music/artist/album ~ ~/Pictures/Canon/2012_07_01
Run Code Online (Sandbox Code Playgroud)
实际上,您不需要popd直接使用,因为这会从堆栈中删除目录;最好的办法是使用pushd旋转堆栈,以便您可以不断在目录之间切换并根据需要对它们进行排序。有关有用的堆栈轮换的更多信息,请参阅Bash 联机帮助页。
如果您的堆栈排列与上面的dirs列表所示完全相同,pushd +3则将您切换到特定的图片文件夹并将其放置在堆栈顶部(它是 +3 而不是 +4,因为您不将其计入~目录堆栈中):
pushd +3
~/Pictures/Canon/2012_07_01 ~/Downloads/folder/interest ~/Music/artist/album ~
Run Code Online (Sandbox Code Playgroud)
所以提示是这样的:
~/Pictures/Canon/2012_07_01$
Run Code Online (Sandbox Code Playgroud)
您可以继续执行此操作,而无需将它们从堆栈中删除,尽管您cd访问的任何文件夹(除了使用 添加到目录堆栈的文件夹之外pushd)都会改变您的目录堆栈。
一旦您按照所需的顺序排列了目录堆栈,您就可以使用popd快速循环浏览目录,然后返回到主文件夹;例如,从Pictures我们可以返回到Downloads:
popd
~/Downloads/folder/interest ~/Music/artist/album ~
Run Code Online (Sandbox Code Playgroud)
提示如下:
~/Downloads/folder/interest$
Run Code Online (Sandbox Code Playgroud)
一般来说,这样做的好处在于,您可以设置目录堆栈及其中项目的顺序pushd,然后,假设您在每个目录中都有三个文件要编辑,您可以在popd删除它们时立即返回到每个文件从目录堆栈中。popd然后,您将返回到最后一个~。当您有特别深的目录并且可以使用它来设置目录堆栈以在它们之间快速移动时,它变得特别有用。
此外,此问题还包含一些在使用命令行时可能有用的提示: