Shell 生成一条路径以返回给定路径

Shell 生成一条路径以返回给定路径,shell,cd,Shell,Cd,假设我有以下相对路径: MY_PATH := first/second/third 我正在搜索一个较短的shell命令,以实现以下目标: MY_NEW_PATH := ../../.. 如何做到这一点?$MY_PATH=first/second/third $ MY_PATH=first/second/third $ sed -e 's#[^/]\+/\?#../#g' <<<"$MY_PATH" ../../../ $sed-e的#[^/]\+/\?#..../#g'以

假设我有以下相对路径:

MY_PATH := first/second/third
我正在搜索一个较短的shell命令,以实现以下目标:

MY_NEW_PATH := ../../..
如何做到这一点?

$MY_PATH=first/second/third
$ MY_PATH=first/second/third
$ sed -e 's#[^/]\+/\?#../#g' <<<"$MY_PATH"
../../../

$sed-e的#[^/]\+/\?#..../#g'以及如何在没有最后一个“/”`?@nilo的情况下实现,我必须多考虑一点并使用它,但现在答案中添加了第一个版本。
$ MY_PATH=first/second/third
$ cdup=$(sed -e 's#[^/]\+/\?#../#g' <<<"$MY_PATH")
$ echo "$cdup"
../../../
$ echo "${cdup%/}"
../../..
$ MY_PATH=first/second/third
$ sed -e 's#[^/]\+/\?#./.#g' <<<"$MY_PATH"
./../../.