gpt4 book ai didi

linux - 如何在 shell 中创建别名以转到父目录

转载 作者:太空宇宙 更新时间:2023-11-04 03:40:44 24 4
gpt4 key购买 nike

我想知道如何创建一个带有无尽参数的别名,以便在没有别名的情况下进入父目录!

目前我已经编写了这个函数来实现它并且工作完美。

b() {
list=$1
for (( i=0; i<${#list}; i++ )); do
cd ..
done
}

您可以像 b ..b ...b . 一样使用它

我想要的是在没有“b”的情况下使用它,只是点!我们怎样才能动态地实现它?

编辑:

输入 - 输出

.. => cd ../../
... => cd ../../../

提前致谢!

最佳答案

如果您不介意在按 . n 次后定义 n-1 个别名,请将其添加到您的 .bashrc 中:

function update_dots() {
READLINE_LINE=${READLINE_LINE}.
if [[ "$READLINE_LINE" =~ ^\.(\.+)$ ]]; then
DOT_CMD="cd ${READLINE_LINE//\./\.\.\/}"
alias $READLINE_LINE="$DOT_CMD"
fi
READLINE_POINT=$(($READLINE_POINT+1))
}

bind -x '".":"update_dots"'

它的工作原理如下:

[thomas@corellia e]$ pwd
/tmp/a/b/c/d/e
[thomas@corellia e]$ .....
[thomas@corellia tmp]$ pwd
/tmp
[thomas@corellia tmp]$ alias
alias ..='cd ../../'
alias ...='cd ../../../'
alias ....='cd ../../../../'
alias .....='cd ../../../../../'

关于linux - 如何在 shell 中创建别名以转到父目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29771918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com