cd 3 vezes para bisavô dir

0

Eu tenho isso:

cd $(dirname $(dirname $(dirname "$0"))) &&

que irá cd para o projeto raiz.

Existe uma forma abreviada para isso de alguma forma, onde eu posso ser como:

cd 3 &&  # not quite, but you get the idea

ou qualquer outra coisa, quero dizer, por que você não sabe?

Talvez um comando como esse seja ideal:

cdx 3 &&

desde cd não tem idéia de que 3 não é um arquivo ou diretório.

    
por Alexander Mills 17.07.2017 / 21:23

3 respostas

1

Você faz sabe que cd .. leva você ao diretório pai? Então, se eu entendi sua pergunta corretamente, você pode usar:

cd $(dirname $0)/../../..
    
por 17.07.2017 / 21:36
1

Defina esta função:

dirx(){ a=$0;for((i=0;i<$1;i++));do a=${a%/*};done;cd "$a"; }

E faça:

$ dirx 3
    
por 17.07.2017 / 21:40
0

Você pode usar a expansão de parâmetro em bash :

cd "${0%/*/*/*}"

ou ainda mais simples em zsh :

cd $0:h:h:h
    
por 17.07.2017 / 21:34