pushd, popd e dirs
Esses três comandos servem para facilitar a sua navegação entre diretórios. Normalmente, usamos o comando cd [caminho_do_diretorio], porém com os comandos pushd, popd e dirs podem agilizar e muito a navegação entre diretórios, pois cria um registro dos diretórios em forma de uma pilha (stack).
Basicamente, os comandos funcionam da seguinte maneira: o comando pushd adiciona um diretório à pilha de diretórios. O comando popd remove o último diretório adicionado da pilha de diretórios, navegando até o diretório que estava posterior na pilha. Por último, o comando dirs mostra todos os diretórios na pilha.
Exemplo
-
Navegue até o diretório
/tmpe crie alguns diretórios para o exemplo:
$ cd /tmp $ mkdir diretorio{0,1,2,3,4} ~> esse comando criará 5 diretórios -
Veja quais diretórios estão na pilha usando o comandodirs e depois navegue até o
diretorio0com o comandopushd diretorio0:
$ dirs output: /tmp $ pushd diretorio0 output: /tmp/diretorio0 /tmpNote que toda vez que você adiciona ou remove um diretório da pilha, será mostrado o novo estado da pilha na tela.
-
Agora temos dois diretórios na pilha, se quisermos navegar até o
diretório1, usamos novamente o comandopushdcom o caminho (relativo ou absoluto):
$ pushd /tmp/diretorio1 output: /tmp/diretorio1 /tmp/diretorio0 /tmp -
Para retornar ao
diretorio0basta usarmos o comandopopde remover o diretorio1 da pilha:
$ popd output: /tmp/diretorio0 /tmp -
Para pular para um diretório específico da pilha sem remover nenhum, fazemos como abaixo:
$ pushd /tmp/diretorio0 output: /tmp/diretorio0 /tmp $ pushd /tmp/diretorio1 output: /tmp/diretorio1 /tmp/diretorio0 /tmp $ pushd /tmp/diretorio2 /tmp/diretorio2 /tmp/diretorio1 /tmp/diretorio0 /tmp -
Se queremos pular do diretório atual (
diretorio2) para odiretorio0temos que andar duas posições na pilha. Então utilizamos o comandopushdconforme abaixo:
$ pushd +2 output: /tmp/diretorio0 /tmp /tmp/diretorio2 /tmp/diretorio1
Caso você use o comando pushd sem o argumento +2, você será direcionado para o último diretório antes desse, ou seja, você pode usar o comando pushd para revezar entre dois diretórios (como se fosse um alt + tab entre diretórios).
Note que, ao caminhar pelas posições na pilha, os diretórios que antecediam o diretório de destino foram para o final da pilha. Isso pode fazer que a navegação se torne confuso se a pilha está muito grande. Porém, sempre se pode limpar a pilha utilizando o comando
dirs -c.
Com o tempo e costume isso ajuda muito na navegação, principalmente quando se tem que ficar indo de um lado pro outro em diretórios de configuração.
Top comments (1)
Que demais, um array de diretórios! Muito bom! Valeu!