2

linux是否有命令允许我将我经常使用的命令推送到堆栈或其他东西中,以便我可以轻松地从中获取它们并尽可能多地在最常用的命令之间跳转。

我知道我们可以为命令创建别名,但这不是我在这里寻找的。我的情况更像是我有一些可怕的长目录,我需要能够快速而频繁地在它们之间切换。例如。

cd /pathA/pathB/pathC/pathD/
cd /pathE/pathF/pathG/pathH/
vim /pathA/pathB/pathC/pathD/test.txt
.......

我真的不想在这里为每个命令创建别名,因为路径也经常变化,我不想不断更新我的别名。

4

5 回答 5

3

关于目录,您可以将路径推送到堆栈上

pushd path_you_want_to_store
popd
于 2012-06-26T12:31:10.253 回答
2

好吧,你的 shell 的历史功能可以让你回忆以前的命令。

在最后 2 个目录之间来回切换的快速命令是

cd -

就更多目录而言,我在 my 中使用这组别名.tcshrc来跟踪它们。如果我在一个目录中我想记住我只是说

keep

或者

keep2

然后我可以通过简单地输入回到那里

cd $k

或者

cd $k2

如果我想查看我“保存”的目录,我输入

ks

我还可以将这些变量用于其他操作,例如cp/mv(我经常这样做是为了节省输入长路径名)。

您没有指定您的 shell,所以这是使用的,tcsh但只要您知道如何设置等效别名,就可以轻松地适应任何其他 shell。这使我最多可以保存 6 个不同的目录,您可以决定设置多少。

这是我自己的“本土”解决方案,在过去 10 多年里一直很好地为我服务,可能还有其他的,也许是“内置的”。在这一点上,我会自动并且经常使用它们,以至于我什至不认为它们是别名。

alias keep   'set k=`pwd`'
alias keep2  'set k2=`pwd`'
alias keep3  'set k3=`pwd`'
alias keep4  'set k4=`pwd`'
alias keep5  'set k5=`pwd`'
alias keep6  'set k6=`pwd`'
alias ks     'echo $k; echo $k2; echo $k3; echo $k4; echo $k5; echo $k6'
于 2012-06-26T12:34:49.050 回答
1

写一次你的“长路径”,下次按 获取它"Ctrl + r"

你需要先按"Ctrl + r"。然后开始输入您的“长路径”,它将开始显示您已经输入的路径。

要查找更多旧记录(与您键入的文本相同)的存在,请按住"Ctrl + r",它将显示旧记录。

于 2012-06-26T12:46:00.470 回答
1

还要检查 CDPATH 变量,它可以包含您想要跳转到的公共目录的列表 - 例如:

export CDPATH=/pathA/pathB/pathC
cd pathD
# now you're at /pathA/pathB/pathC/pathD
于 2013-10-20T02:59:06.647 回答
1

如果您觉得该命令会经常使用,您可以添加一个标签

命令#有用

然后

[ctrl+r] #useful

于 2014-11-09T08:09:28.680 回答