Isso tem que ser uma função de shell , não um script, porque um script é executado em um novo shell (e, portanto, não pode mudar o diretório do shell original).
function cdroot()
{
while [[ $PWD != '/' && ${PWD##*/} != 'httpdocs' ]]; do cd ..; done
}
Você pode, é claro, nomear a função como quiser.
Algumas explicações: O primeiro teste ( $PWD != '/'
) é um teste de segurança, caso você use cdroot
quando não estiver em uma pasta httpdocs. Parará quando você chegar à raiz.
O segundo teste ( ${PWD##*/} != 'httpdocs'
) é um pouco mais complicado. $PWD
é uma variável que contém o caminho do diretório atual. ${PWD##*/}
apara tudo até e incluindo a última barra.