我见过专家做这样的事情:
>>-5
这会将它们向上跳转 5 级父目录。
我想:“这太酷了!”
我可以将其添加到我的 shell 配置文件中,但不是以非常简洁的方式。
我所做的是将其添加到我的 .zshrc (也适用于 .bashrc 或其他 shell)配置文件中。
function -1 {
cd ..
}
function -2 {
cd ../..
}
function -3 {
cd ../../..
}
这有效。
当然,如果我想做-25怎么办?我可能不会费心去数那么多,但你永远不知道。你可以看到这会变得多么漫长。我想避免复制粘贴类型的不良编码实践。
我尝试添加:
function "$0" {
#...
或
function "$@" {
#...
尝试获取命令输入。 我希望我可以使用正则表达式来查找字符串,解析,为任意数量的父级别的值创建一个循环...我有这方面的代码,但在第一步中遇到了困难:
"$@"
类型命令根本不起作用......即使它起作用,我不确定我是否希望所有命令都击中此块并且不会出现漂亮的zsh: <command provided>: command not found...
错误消息。有什么办法可以避免这种情况吗?
这一切都归结为具有可变的命令名称。也许这是更好的问题:这可能吗?
我确信有人已经想到了这一点。我试着查了一下,但还没有找到任何东西。
请参阅下面的 bash/zsh 解决方案。使用“邪恶的评估”:-) 适用于 bash (5.1.6) 和 zsh (5.8.1)
dd=..
for ((x=1 ; x<=25 ; x++)) { eval "function -$x { cd $dd ; }" ; dd+=/.. ; }
也可以在其他类似 sh 的程序上进行较小的修改。