#
# NAVEGAÇÃO DE DIRETÓRIOS — ZSH / BASH / KSH
# Cheatsheet completo, comentado.
#-------------------------------------------------------------------------------
# CD - NAVEGAÇÃO BÁSICA (change directory)
#-------------------------------------------------------------------------------
cd DIR
# Entra no diretório DIR.
# Não mexe na pilha de diretórios (a menos que autopushd esteja ativo).
cd -
# Volta para o último diretório visitado
# Isso é interessante, porque se você precisar ficar indo e vindo entre dois
# diretórios, `cd -` ajuda bastante.
cd -N
# Vai para o diretório de índice N mostrado pelo comando `dirs -v`.
# Ele rotaciona a pilha (eu estou chamando isso de pilha, mas não me parece pilha)
cd -q DIR
# (ZSH) Entra no diretório DIR sem mexer na pilha,
# mesmo que autopushd esteja ligado ("quiet mode").
#-------------------------------------------------------------------------------
# DIRS - VISUALIZAR PILHA / HISTÓRICO
#-------------------------------------------------------------------------------
dirs
# Mostra a pilha/histórico atual numa linha.
dirs -v
# Mostra a pilha com índices (forma mais útil).
dirs -p
# Mostra cada diretório em uma linha.
dirs -l
# Expande ~ para caminho completo.
# Exemplo: /Users/seu_usuario ao invés de ~/.
dirs -c
# Limpa completamente a pilha de diretórios.
#-------------------------------------------------------------------------------
# PUSHD - EMPILHAR + NAVEGAR
#-------------------------------------------------------------------------------
pushd PATH
# Empilha o diretório atual e navega para PATH.
# Isso é literalmente um "push" de pilha (LIFO).
pushd
# Troca o diretório atual com o anterior na pilha.
pushd +N
# Rotaciona a pilha trazendo o índice N para o topo,
# mudando o diretório atual para aquele.
# Ex: pushd +2
# [0, 1, 2, 3] # 2 e 3 serão movidos para o topo, 0 e 1 terão que se adequar
# [2, 3, 0, 1] # outro exemplo a partir daqui: pushd +3 (índice 3 se torna 0)
# [1, 2, 3, 0] # 1 foi da última posição para a primeira, os outros se adequaram
pushd -N
# Rotaciona a pilha no sentido inverso (para mim, mais confuso)
# Ex: se eu pegar a lista como deixei acima [1, 2, 3, 0] e quero reorganizar.
# Perceba que já temos uma certa ordem em 1, 2, 3, *0 (o zero é quem está fora)
# Para fazer isso com positivo, faríamos pushd +3
#
# Para fazer isso com negativo, basta inverter, portanto -0 (no índice invertido)
# pushd -0 # voltamos para [0, 1, 2, 3]
#
# Atual: [0, 1, 2, 3]
# Ex: pushd -2 (-2 é o 1 agora, basta contar índices de trás para frente)
# [1, 2, 3, 0] # É a mesma ideia, move o 1 para o topo, o resto se adequa
# pushd -1 (invertido, 3 é o -1, o zero segue a frente dele)
# [3, 0, 1, 2] # Os números a frete do índice acompanham, os outros se adequam
# -------------------------
# POPD - DESEMPILHAR + VOLTAR
# -------------------------
popd
# Desempilha o diretório do topo e navega para o próximo.
# Igual a "pop" real de stack. + conta normal, - conta invertido a partir do 0.
popd +N
# Expliquei o positivo e negativo com pushd, só que aqui estamos removendo itens
popd -N
# Expliquei o positivo e negativo com pushd, só que aqui estamos removendo itens
#-------------------------------------------------------------------------------
# OPÇÕES DO ZSH (BOAS PARA CONFIG)
#-------------------------------------------------------------------------------
setopt autopushd
# Ativa o modo onde TODO cd vira pushd automaticamente.
# Não recomendado para quem quer pilha limpa (eu uso, não sei se vou manter).
setopt no_autopushd
# Desativa o autopushd.
# cd NÃO entra na pilha — controle total por pushd/popd.
# RECOMENDADO para a pilha não ficar muito confusa.
setopt pushdminus
# Permite usar "cd -" como "pushd -1" (comportamento alternativo).
# Raramente útil.
setopt pushdignoredups
# Evita adicionar diretórios duplicados na pilha.
setopt pushdsilent
# Silencia a saída do pushd/popd.
setopt pushdtohome
# pushd sem argumentos -> vai para ~ automaticamente.
#-------------------------------------------------------------------------------
# ALIASES ÚTEIS (OPCIONAL)
#-------------------------------------------------------------------------------
alias pd='pushd'
# Alias curto para empilhar e navegar.
alias po='popd'
# Alias curto para sair da pilha.
alias dl='dirs -v'
# Ver a pilha numerada rapidamente.
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
# Navegação rápida de ancestrais.
#-------------------------------------------------------------------------------
# TRUQUES EXTRAS
#-------------------------------------------------------------------------------
pwd
# Mostra o diretório atual.
cd ~
# Volta para o home.
cd /tmp
# Vai para o /tmp rapidamente.
cd !$
# Usa o último argumento do comando anterior como argumento do cd.
cd -- -
# Se "-" ficar ambíguo com opções, força interpretar como diretório "-".
# ZSH: navegação tipo browser (voltar/avançar diretórios)
setopt auto_cd
# Permite digitar só o nome do diretório para entrar (sem escrever cd).
# Navegação por histórico com Alt+Left / Alt+Right (dependente do terminal)
# (não é comando, mas comportamento da keymap do zsh)
#-------------------------------------------------------------------------------
# LIMPEZA / RESET
#-------------------------------------------------------------------------------
dirs -c
# Limpa toda a pilha.
unsetopt autopushd
# Desativa cd bagunçando sua pilha.
# -------------------------
# END
# -------------------------
Created
November 13, 2025 14:45
-
-
Save luizomf/e1d0b6aca5d812ae06001751ad03586f to your computer and use it in GitHub Desktop.
Comandos de navegação no terminal: cd, dirs, pushd, popd, autopushd, pushdminus, pushdignoredups, pushdsilent
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment