Forem

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!

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay