我有这个:
cd $(dirname $(dirname $(dirname "$0"))) &&
这将 cd 到项目根目录。
是否有某种简写方式,我可以这样:
cd 3 && # not quite, but you get the idea
或者无论如何,我的意思是你为什么不知道?
也许像这样的命令是理想的:
cdx 3 &&
因为cd
不知道 3 不是文件或目录。
答案1
你做知道这cd ..
会将您带到父目录吗?所以,如果我正确理解你的问题,你可以使用:
cd $(dirname $0)/../../..
答案2
定义这个函数:
dirx(){ a=$0;for((i=0;i<$1;i++));do a=${a%/*};done;cd "$a"; }
并做:
$ dirx 3
答案3
您可以在以下位置使用参数扩展bash
:
cd "${0%/*/*/*}"
甚至更简单zsh
:
cd $0:h:h:h