DEV Community

Cover image for Seja mais produtivo com Linux #1
Ariel Barcellos
Ariel Barcellos

Posted on

1 1

Seja mais produtivo com Linux #1

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.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (1)

Collapse
 
sr2ds profile image
David Silva

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