removendo ou limpando a pilha de caminhos popd / pushd

33

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.

    
por chrisjlee 09.02.2012 / 07:24

2 respostas

37

dirs -c é o que você está procurando.

    
por 09.02.2012 / 07:37
5

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
    
por 23.03.2017 / 16:37

Tags