specialcdcommand() cd ${(M)PWD#/*/*/}
Ou:
specialcdcommand() cd ${${(M)PWD#/*/*/}:?Not deep enough}
ou:
specialcdcommand() cd "${(M)PWD#/*/*/}"
para evitar ir ao seu diretório pessoal se você ainda não tiver ultrapassado dois níveis.
Em zsh , o sinalizador de expansão variável (M) altera o comportamento do operador ${var#pattern} , de modo que a sequência atiada M é expandida em vez de ser removida. :? é o operador padrão / Bourne para retornar um erro (e cancelar o comando) se uma variável se expandir para uma cadeia vazia. Observe que zsh é o único shell que possui uma maneira consistente de expandir os parâmetros de aninhamento.
POSIXly:
specialcdcommand() {
p=${PWD#/*/*/}
[ "$p" = "$PWD" ] || cd "${PWD%"$p"}"
}
Ou para evitar a alteração da variável $p :
specialcdcommand() {
set -- "${PWD#/*/*/}"
[ "$1" = "$PWD" ] || cd "${PWD%"$p"}"
}