DEV Community

loading...
Cover image for Seja mais produtivo com Linux #1

Seja mais produtivo com Linux #1

arielbarcellos profile image Ariel Barcellos ・2 min read

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

  1. 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
    
  2. Veja quais diretórios estão na pilha usando o comandodirs e depois navegue até o diretorio0 com o comando pushd 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.

  3. Agora temos dois diretórios na pilha, se quisermos navegar até o diretório1, usamos novamente o comando pushd com o caminho (relativo ou absoluto):

    $ pushd /tmp/diretorio1
    output: /tmp/diretorio1 /tmp/diretorio0 /tmp
    
  4. Para retornar ao diretorio0 basta usarmos o comando popd e remover o diretorio1 da pilha:

    $ popd
    output: /tmp/diretorio0 /tmp
    
  5. 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
    
  6. Se queremos pular do diretório atual (diretorio2) para o diretorio0 temos que andar duas posições na pilha. Então utilizamos o comando pushd 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.

Discussion (1)

pic
Editor guide
Collapse
sr2ds profile image
David Silva

Que demais, um array de diretórios! Muito bom! Valeu!