Freqüentemente, você tem uma situação em que está em uma determinada pasta (digamos, seu diretório Tomcat) e deseja navegar para outro local porque pode ser necessário ajustar outro componente no mesmo host.
Vejo muitas pessoas fazendo o seguinte:
> cd ../../somewhere/iwanttogohere
e, em seguida, gravá-lo de volta assim que terminar
> cd ../../whereiwas/before
Se você usar pushd no primeiro comando
> pushd ../../somewhere/iwanttogohere
seu diretório de trabalho atual será colocado em uma pilha antes de o diretório ser alterado. Depois de digitar
> popd
você simplesmente pula para o diretório que está atualmente no topo da pilha.
Se você adicionar várias pastas à pilha, poderá observar o estado atual com
> dirs
e manipular a pilha com os argumentos + N e -N de pushd e popd, onde N é o número na lista de diretórios em sua pilha.
Consulte também http://www.gnu.org/software/bash/manual/html_node/Directory-Stack-Builtins.html para obter uma documentação detalhada.