Navegando no sistema de arquivos: cd, ls, pwd, tree

1. Introdução à navegação no sistema de arquivos

Navegar no sistema de arquivos pelo terminal é uma habilidade fundamental para qualquer usuário de Bash/Shell Script. Diferente de interfaces gráficas, onde você clica em pastas, no terminal você utiliza comandos textuais para se mover entre diretórios, visualizar conteúdos e entender a estrutura hierárquica do sistema.

O sistema de arquivos Unix/Linux é organizado como uma árvore invertida, começando pelo diretório raiz (/). Cada diretório pode conter arquivos e subdiretórios, formando uma estrutura hierárquica. Saber seu "caminho atual" é essencial, pois todos os comandos que você executa dependem do contexto do diretório onde você está.

2. pwd — Descobrindo onde você está

O comando pwd (Print Working Directory) exibe o caminho absoluto do diretório atual. Sua sintaxe é simples:

pwd

Exemplo de saída:

/home/usuario/projetos

O caminho absoluto começa sempre com / e descreve a localização completa desde a raiz. Já o caminho relativo depende do diretório atual. Por exemplo, se você está em /home/usuario e digita pwd, receberá:

/home/usuario

Se você navegar para Documentos, o pwd mostrará:

/home/usuario/Documentos

3. ls — Listando o conteúdo de diretórios

O comando ls lista arquivos e diretórios. Seu uso básico:

ls

Para listar um diretório específico:

ls /var/log

As opções mais importantes são:

  • -l (formato detalhado): mostra permissões, proprietário, tamanho e data
  • -a (all): inclui arquivos ocultos (que começam com .)
  • -h (human-readable): exibe tamanhos em KB, MB, GB

Combinações comuns:

ls -la          # Lista detalhada com arquivos ocultos
ls -lh          # Lista detalhada com tamanhos legíveis
ls -la /etc     # Lista detalhada de /etc com ocultos
ls -R           # Lista recursivamente subdiretórios

Exemplo prático:

$ ls -la /home/usuario
total 48
drwxr-xr-x 12 usuario usuario 4096 mar 15 10:30 .
drwxr-xr-x  3 root    root    4096 mar 14 08:00 ..
-rw-------  1 usuario usuario  234 mar 15 09:00 .bash_history
drwxr-xr-x  2 usuario usuario 4096 mar 12 14:20 Documentos
-rw-r--r--  1 usuario usuario  120 mar 13 16:45 notas.txt

4. cd — Mudando de diretório

O comando cd (Change Directory) é o principal para navegação. Sua sintaxe:

cd [diretório]

Navegação básica:

cd /var/log          # Vai para /var/log (caminho absoluto)
cd Documentos        # Vai para Documentos (caminho relativo)
cd ..                # Sobe um nível na hierarquia
cd ~                 # Vai para o diretório home do usuário
cd                   # Equivalente a cd ~

Atalhos úteis:

cd -                 # Volta para o diretório anterior
cd ~/Documentos      # Vai para Documentos no home
cd ../..             # Sobe dois níveis

Exemplo prático de navegação:

$ pwd
/home/usuario
$ cd Documentos/projetos
$ pwd
/home/usuario/Documentos/projetos
$ cd -
/home/usuario

5. tree — Visualizando a árvore completa de diretórios

O comando tree exibe a estrutura de diretórios em formato de árvore. Muitos sistemas não o trazem instalado por padrão. Para instalar:

# Debian/Ubuntu
sudo apt install tree

# RHEL/CentOS/Fedora
sudo yum install tree

# macOS (com Homebrew)
brew install tree

Sintaxe básica:

tree [diretório] [opções]

Opções principais:

  • -L n: limita a profundidade a n níveis
  • -d: mostra apenas diretórios
  • -a: inclui arquivos ocultos

Exemplos:

tree -L 2                     # Mostra 2 níveis de profundidade
tree -d /var/log              # Apenas diretórios em /var/log
tree -L 1 -d /home/usuario   # Apenas diretórios no primeiro nível

Saída típica:

$ tree -L 2 /home/usuario/Documentos
/home/usuario/Documentos
├── projetos
│   ├── bash-scripts
│   └── python-app
└── relatorios
    ├── 2024
    └── 2025

4 directories, 0 files

6. Dicas e boas práticas para navegação eficiente

Autocompletar com Tab

Pressione Tab para autocompletar caminhos. Se houver múltiplas opções, pressione Tab duas vezes para listá-las:

cd /ho[Tab]   # Completa para /home
cd Doc[Tab]   # Completa para Documentos (se existir)

Histórico com pushd e popd

pushd e popd permitem empilhar diretórios para navegação mais complexa:

pushd /var/log    # Vai para /var/log e salva o anterior na pilha
pushd /tmp        # Vai para /tmp e salva /var/log na pilha
dirs              # Mostra a pilha de diretórios
popd              # Volta para /var/log
popd              # Volta para o diretório original

Aliases úteis

Adicione ao seu ~/.bashrc ou ~/.bash_aliases:

alias ll='ls -la'
alias la='ls -a'
alias l='ls -CF'
alias ..='cd ..'
alias ...='cd ../..'
alias tree2='tree -L 2'

Após adicionar, recarregue com:

source ~/.bashrc

7. Resumo e próximos passos

Você aprendeu quatro comandos essenciais para navegação no sistema de arquivos:

  • pwd: mostra onde você está
  • ls: lista o conteúdo de diretórios
  • cd: muda de diretório
  • tree: visualiza a estrutura hierárquica

Esses comandos formam a base para operações mais avançadas. Com eles, você pode explorar qualquer diretório, entender sua localização e planejar próximas ações como manipular arquivos (cp, mv, rm) ou visualizar conteúdos (cat, less, head).

Exercício prático: Navegue até /usr/share/doc, liste seu conteúdo com ls -la, use tree -L 1 para ver a estrutura e volte ao diretório anterior com cd -. Repita o processo com /var/log e observe as diferenças.

Referências