我注意到我经常需要做这样的事情:
我处在一条路径上:/very/long/path/1
我必须去/another/long/path/
那里做一些事情。然后我必须回到我的/very/long/path/1
。更糟糕的是,有时还有第三条路径,我不断地从一条路径切换到另一条路径。
这不是问题cd
,但是有没有办法以某种方式存储这些路径并使用它们?
我正在通过某个远程主机的命令行工作。
答案1
这参数 该程序专为管理经常访问的目录的书签而设计,以便您按照自己的意愿在 shell 中轻松导航。它带有bash
shell 集成和已保存目录的 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 模式,可浏览已添加书签的目录的完整列表。只需运行cv
orcdargs
而不带任何参数,它就会显示已添加书签的目录路径列表,您可以使用箭头键或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
更多永久别名:
因为 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)
空列表(无目录变化)