dirs -c é o que você está procurando.
Após pushd ing muitas vezes, quero limpar toda a pilha de caminhos.
Como eu popd todos os itens na pilha?
Gostaria de popd sem precisar saber quantos estão na pilha?
O manual do bash não parece parece cobrir isso .
Por que preciso saber disso? Eu sou exigente e limpo a pilha.
Para esvaziar a pilha e restaurar o diretório de trabalho da parte inferior da pilha:
recupere esse diretório de dirs , mude para esse diretório e limpe a pilha:
cd "$(dirs -l -0)" && dirs -c
A opção -l aqui listará os caminhos completos, para garantir que não falharemos se tentarmos cd em ~ e o -0 recuperar a primeira entrada da parte inferior da pilha.
@ jw013 sugeriu tornar esse comando mais robusto, evitando expansões de caminho:
pushd -0 && dirs -c
ou, popd até encontrar um erro (que é o status de uma chamada popd quando a pilha de diretórios está vazia):
while (( $? == 0 )); do popd; done