Como usar pushd e popd no Linux

Fatmawati Achmad Zaenuri / Shutterstock
Muitas pessoas do Linux nunca ouviram falar de pushd e popd, mas elas sempre existem. Eles também podem acelerar drasticamente o processo de navegação nos diretórios na linha de comando. Nós mostraremos como usá-los.
O que são pushd e popd?
Uma das inovações que Bill Joy incorporou em seu C Shell de 1978 foi o conceito de uma pilha de diretórios e os meios para manipulá-la: pushd e popd. Sendo a imitação a forma mais sincera de lisonja, a pilha de diretórios, pushd e popd logo foram incorporados a outros shells (como o Bash) e até a outros sistemas operacionais.
O conceito de pilha é simples. Os itens são colocados na pilha, um de cada vez, com o item adicionado mais recentemente sempre ocupando a posição superior. Quando os itens são recuperados da pilha, eles são removidos, em ordem, de cima para baixo. Pilhas dessa natureza geralmente são chamadas de filas Last In, First Out (LIFO).
Na verdade, pushd e popd são um pouco mais flexíveis que isso, mas esse é um bom modelo para se ter em mente por enquanto.
Como estamos nos referindo a uma pilha de diretórios, provavelmente não é surpresa que o “ d ” em pushd e popd significa diretório "“". Esses comandos permitem inserir diretórios na pilha de diretórios ou removê-los.
Mas como isso nos beneficia?
Como pushd preenche a pilha
Quando você usa pushd, as três coisas a seguir acontecem:
- Você altera o diretório da mesma forma como se tivesse usado o cd.
- O nome e o caminho do diretório são adicionados à pilha.
- O A pilha é exibida como uma lista de diretórios separados por espaço.
Nos exemplos a seguir, observe como a pilha de diretórios cresce a cada novo comando pushd. Observe também que a parte superior da pilha está à esquerda - é aqui que as novas entradas aparecem.
Após o primeiro comando pushd, existem duas entradas na pilha: o diretório que você deixou e o diretório para o qual você se mudou.
No nosso exemplo, digitamos o seguinte:
pushd ~ / Desktop
pressionado ~ / Música
pushd ~ / Documentos
pushd ~ / Imagens
pressionado ~

O último comando pushd nos levou de volta ao nosso diretório pessoal, portanto, a primeira e a última entrada na pilha são o til (~), que representa nosso diretório pessoal. Isso mostra que, embora um diretório já esteja na pilha, ele será adicionado novamente para outros comandos pushd.
Observe também que a entrada mais à esquerda na pilha, que foi adicionada mais recentemente, é seu diretório atual.
O comando dirs
Você pode usar o comando dirs, como mostrado abaixo, para exibir a pilha de diretórios:
dirs

Não afeta a pilha, apenas a exibe. Algumas das opções que você pode usar com pushd referem-se à posição dos diretórios na pilha.
Se você deseja ver a posição numérica de cada diretório, pode usar a opção -v (vertical) como mostrado abaixo:
dirs -v

Se você prefere ver o caminho digitado para o diretório inicial em vez do til (~), adicione a opção -l (formato longo) da seguinte forma:
dirs -v -l

Adicionando um diretório à pilha
Como vimos, quando você usa o comando pushd, ele faz três coisas: altera seu diretório, adiciona o novo diretório à pilha e exibe a pilha para você. Você pode usar a opção -n (sem rotação) para adicionar um diretório à pilha sem alterar o diretório atual.
Aqui está nossa pilha de diretórios:
dirs -v -l

Agora, vamos usar o comando pushd com a opção -n e passar no diretório / home / dave como parâmetro. Em seguida, verificaremos a pilha de diretórios novamente.
Digitamos o seguinte:
pushd -n / home / dave
dirs -v -l

O diretório / home / dave foi adicionado à pilha no slot 1, que é o segundo lugar na pilha. Ele não pode ocupar a posição superior porque o slot zero é sempre o diretório atual.
Não deixamos o diretório atual, ~ / Videos, por isso não foi rotacionado para outra posição na pilha.
Alterando o diretório girando a pilha
Você pode usar parâmetros numéricos com pushd para mover para qualquer diretório em uma pilha, e a pilha gira quando você o faz. O diretório que você escolheu para mover se torna a primeira entrada na pilha.
Você faz referência aos diretórios na pilha pelo número de posição. Você pode contar da parte superior ou inferior da pilha. Para números positivos, como +3, conte a partir do topo; para números negativos, como -2, conte da parte inferior.
O diretório / home / dave / Documents está na posição três. Podemos usar o seguinte comando para mover esse diretório:
pressionado +3

Os diretórios na pilha acima do diretório que escolhemos são movidos para o final da pilha. Nosso diretório escolhido agora ocupa a posição superior e somos movidos para esse diretório.
Se quisermos mudar para o diretório na parte inferior da pilha, podemos usar o seguinte comando:
pressione -0

O último diretório é movido para o primeiro slot, e todos os outros são movidos para baixo na pilha. Nós mudamos para o diretório ~ / Pictures.
O comando popd
Você pode usar o comando popd para remover diretórios da pilha.
Se olharmos para a pilha de diretórios, podemos ver que o diretório na posição 1 é / home / dave. Para remover isso da pilha, digite o seguinte para passar o número ao popd:
dirs -v -l
popd +1

O diretório / home / dave foi removido e os que estavam abaixo dele na pilha subiram um local.
Assim como podemos com pushd, podemos contar da parte inferior da pilha com popd. Para remover o último diretório da pilha, digite:
popd -0

O diretório ~ / Music é removido da última posição na pilha.
Para alterar o diretório, fazer alguma coisa e voltar ao diretório anterior, você pode usar pushd e popd juntos.
Nós usaremos pushd para mover para um diretório diferente. Usaremos popd para descartar o diretório mais alto da pilha e mover para o diretório na segunda posição. Este é o diretório do qual você acabou de sair, para que você volte ao diretório em que estava originalmente.
Digitamos o seguinte:
pressionado ~
popd

Iniciamos no diretório ~ / Projects, pressionamos o botão para o diretório inicial e depois retornamos ao diretório ~ / Projects.
Girando pela pilha inteira
Vamos ilustrar como girar através de uma pilha com alguns diretórios aninhados, mas você pode usar qualquer diretório em qualquer lugar do sistema de arquivos.
Nosso nível mais profundo de aninhamento é:
/ home / dave / Projetos / htg / articles
No diretório inicial, desceremos progressivamente por cada diretório até chegarmos ao diretório de artigos. Então, veremos a pilha de diretórios.
Digitamos o seguinte:
pushd ~ / Projetos
pushd htg
artigos pushd
dirs -v -l

Ao emitir repetidamente comandos pushd +1, você pode percorrer a pilha de diretórios. Se você fizer isso com frequência, pushd +1 seria um bom candidato para um alias.
Digite o seguinte:
pressione +1

RELACIONADO: Como criar aliases e funções de shell no Linux
Carimbo sobre a pilha
É fácil voltar aos velhos hábitos e usar o cd para alterar o diretório. Se você fizer isso, você carimbará o primeiro diretório da pilha. Isso é inevitável, pois o primeiro slot é reservado para o diretório de trabalho atual - nenhum dos outros muda de posição.Para fazer isso, digite o seguinte:
dirs -v -l
cd ~ / Música
dirs -v -l

Depois de se acostumar com os comandos pushd e popd (e, talvez, usá-los para criar alguns aliases), você terá uma maneira super rápida de percorrer os diretórios.
É por isso que ficamos na linha de comando. A eficiência diminui, certo?
RELACIONADO: 37 comandos importantes do Linux que você deve conhecer
Via: How to Geek
Nenhum comentário