Navegar pelo sistema de arquivos é uma habilidade essencial no uso do terminal Linux. Comandos como pwd, cd e ls são as ferramentas básicas para se movimentar e explorar diretórios. Nesta aula, você aprenderá a usá-los com eficiência, compreenderá a diferença entre caminhos absolutos e relativos, conhecerá diretórios especiais e descobrirá atalhos que agilizam o trabalho no shell.

Dominar esses conceitos permite navegar rapidamente entre pastas, localizar arquivos e executar comandos com precisão, formando a base para tarefas mais avançadas como scripts e automação.

pwd, cd, ls

O comando pwd (print working directory) exibe o caminho completo do diretório atual. É útil para saber onde você está a qualquer momento. Exemplo:

$ pwd
/home/usuario

O comando cd (change directory) muda o diretório de trabalho. Para ir para um diretório, use cd nome_do_diretorio. Se nenhum argumento for dado, cd leva ao diretório home do usuário. Exemplos:

$ cd Documentos
$ pwd
/home/usuario/Documentos

O comando ls lista o conteúdo de um diretório. Sem argumentos, lista o diretório atual. Opções comuns incluem -l (formato longo), -a (mostra arquivos ocultos) e -h (tamanhos legíveis). Exemplo:

$ ls -la
-rw-r--r-- 1 usuario usuario  1234 Jan 15 10:00 arquivo.txt
drwxr-xr-x 2 usuario usuario  4096 Jan 15 09:00 pasta

Caminhos absolutos e relativos

Um caminho absoluto especifica a localização completa a partir da raiz do sistema de arquivos (/). Por exemplo: /home/usuario/Documentos. Ele funciona independentemente do diretório atual. Já um caminho relativo é especificado em relação ao diretório atual. Por exemplo, se você está em /home/usuario, o caminho relativo Documentos refere-se a /home/usuario/Documentos.

Para navegar usando caminhos relativos, você pode usar referências como . (diretório atual) e .. (diretório pai). Exemplo: cd ../Downloads sobe um nível e entra em Downloads. Caminhos absolutos são mais explícitos e seguros em scripts, enquanto relativos são mais curtos e flexíveis no uso interativo.

# Exemplo de caminho absoluto
$ cd /var/log
# Exemplo de caminho relativo (supondo que esteja em /home/usuario)
$ cd Documentos/Projetos

Diretórios especiais (. .. ~)

O diretório . representa o diretório atual. Embora raramente usado sozinho, é útil em comandos como cp ou mv para referir-se ao local atual. O diretório .. representa o diretório pai, ou seja, o nível acima. Você pode encadeá-los: ../../ sobe dois níveis. O til ~ é um atalho para o diretório home do usuário atual. Exemplos:

$ cd ~          # vai para /home/usuario
$ cd ~/Documentos  # vai para /home/usuario/Documentos
$ cd ..         # sobe um nível
$ cd ../..      # sobe dois níveis

Esses diretórios especiais tornam a navegação mais rápida e expressiva. Combinados com caminhos relativos, permitem movimentação eficiente sem digitar caminhos completos.

Atalhos

O shell oferece vários atalhos que agilizam a navegação e edição de comandos. O mais útil é o Tab para autocompletar nomes de diretórios e arquivos. Pressione Tab parcialmente para completar ou duas vezes para listar opções. Outro atalho é o histórico de comandos: use as setas para cima/baixo para navegar por comandos anteriores. O comando history lista todo o histórico. Você pode reexecutar um comando com !n (onde n é o número no histórico).

Além disso, cd - retorna ao diretório anterior. Isso é especialmente útil quando você alterna entre duas pastas. Exemplo:

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

Outros atalhos incluem Ctrl+A (início da linha), Ctrl+E (fim), Ctrl+U (apagar linha), entre outros. Dominar esses atalhos aumenta significativamente a produtividade no terminal.

Boas práticas

Sempre verifique o diretório atual com pwd antes de executar comandos que afetam arquivos. Use caminhos relativos com moderação em scripts, pois podem quebrar se o script for executado de outro diretório. Prefira caminhos absolutos ou variáveis como $HOME em scripts. Aproveite o autocompletar com Tab para evitar erros de digitação.

Referências

Exercícios

  1. Qual comando exibe o diretório atual? Use-o para verificar em que diretório você está.

    ✓ Resposta: O comando é pwd. Exemplo de saída: /home/usuario.
  2. Explique a diferença entre um caminho absoluto e um caminho relativo. Dê um exemplo de cada.

    ✓ Resposta: Caminho absoluto: começa com /, ex.: /home/usuario/Documentos. Caminho relativo: baseia-se no diretório atual, ex.: se estiver em /home/usuario, Documentos é relativo.
  3. Qual diretório especial é representado por ..? O que acontece se você executar cd ../..?

    ✓ Resposta: .. representa o diretório pai. cd ../.. sobe dois níveis na hierarquia de diretórios.
  4. Como você pode voltar rapidamente para o diretório anterior usando um comando?

    ✓ Resposta: Use cd - para retornar ao diretório anterior.
  5. Qual tecla de atalho autocompleta nomes de diretórios e arquivos no terminal?

    ✓ Resposta: A tecla Tab. Pressione Tab para completar ou duas vezes para listar opções.