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
/tmp
e 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
diretorio0
com o comandopushd diretorio0
:
$ dirs output: /tmp $ pushd diretorio0 output: /tmp/diretorio0 /tmp
Note 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 comandopushd
com o caminho (relativo ou absoluto):
$ pushd /tmp/diretorio1 output: /tmp/diretorio1 /tmp/diretorio0 /tmp
-
Para retornar ao
diretorio0
basta usarmos o comandopopd
e 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 odiretorio0
temos que andar duas posições na pilha. Então utilizamos o comandopushd
conforme 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!