快速从一条路径导航到另一条路径

快速从一条路径导航到另一条路径

我注意到我经常需要做这样的事情:

我处在一条路径上:/very/long/path/1我必须去/another/long/path/那里做一些事情。然后我必须回到我的/very/long/path/1。更糟糕的是,有时还有第三条路径,我不断地从一条路径切换到另一条路径。

这不是问题cd,但是有没有办法以某种方式存储这些路径并使用它们?

我正在通过某个远程主机的命令行工作。

答案1

参数 安装 cdargs该程序专为管理经常访问的目录的书签而设计,以便您按照自己的意愿在 shell 中轻松导航。它带有bashshell 集成和已保存目录的 tab 补全功能。

sudo apt-get install cdargs
. /usr/share/doc/cdargs/examples/cdargs-bash.sh
cd /very/long/path/1
mark path1
cd /another/long/path/
mark path2
cd /yet/another/third/long/path
mark foo
cv path1
cv foo
cv p<TAB> ## tab-completes to "path1/" or "path2/"

您创建的书签保存cdargs在其自己的配置文件中,因此它们会自动从一个 shell 会话转移到下一个 shell 会话,并在您下次登录或打开终端时可用。

它甚至带有交互式 curses 模式,可浏览已添加书签的目录的完整列表。只需运行cvorcdargs而不带任何参数,它就会显示已添加书签的目录路径列表,您可以使用箭头键或vi-style进行选择hjkl

cdargs自动激活您的 shell 环境,只需/usr/share/doc/cdargs/examples/cdargs-bash.sh从您的源~/.bashrc或以其他方式安排它在每个交互式 shell 中加载bash。例如,

cp /usr/share/doc/cdargs/examples/cdargs-bash.sh ~/.bashrc-cdargs
echo '. ~/.bashrc-cdargs' >> ~/.bashrc

答案2

查看 pushd 和 popd 命令。你可以在 Google 上找到相关信息,但它们基本上就像 cd 一样,带有类似堆栈的内存。

答案3

您可以使用cd -切换到上次访问的目录。这将节省您很多时间。

答案4

您可以随时添加别名。

alias big='cd /very/long/directory/goes/here'

然后只需输入big

更多永久别名:

如何创建永久的 Bash 别名?


因为 pushd 和 popd 示例获得了更多赞成票,但是该人没有解释它:)

基本上,当你执行 pushd 时,它会列出你可以放入的目录。(如果你有任何编程背景,当你从列表中弹出一个项目时,它非常相似,如果没有,我会解释)

因此,如果您这样做,pushd ~/Music您只是将目录添加到了您可以访问的列表中。您还可以pushd dir将当前(工作)目录添加到此列表中。当您pushd单独使用该命令时,它将循环显示列表(实际上从技术上讲是堆栈)。

例子:

如果你想添加 3 个目录,它看起来会像这样

user@user: pushd /really/long/dir/1/ <--用户输入

/really/long/dir/1/ <---输出

user@user: pushd /really/long/dir/2/ /really/long/dir/1/ /really/long/dir/2/ user@user: pushd /really/long/dir/3/ /really/long/dir/1/ /really/long/dir/2/ /really/long/dir/3/

这些都将像这样添加。当您使用pushd它时,它将转到列表中的下一个目录,并将第一个目录推到末尾。因​​此列表将从 1,2,3 开始,然后转到 2,3,1 --> 3,1,2 --> 1,2,3 。


popd删除列表最前面的目录,并将您移至新列表的第一个目录。因此,让我们对 4 个目录执行此操作。(假设每次都使用 popd 命令)

例子:

(以 1,2,3,4 开头,在任意目录中)

2,3,4(您位于目录 2)

3,4(您位于目录 3

4(您位于目录 4)

空列表(无目录变化)

相关内容