Navegar pelo sistema de arquivos é uma das habilidades mais básicas e essenciais no uso do shell. Sem ela, você não consegue acessar arquivos, executar scripts ou organizar seu trabalho. Nesta aula, você aprenderá os comandos pwd, cd e ls, que formam a tríade fundamental da navegação. Além disso, entenderá como os caminhos são estruturados no Linux e como usar atalhos para ganhar produtividade.

Dominar esses conceitos permite que você se mova com confiança entre diretórios, entenda onde está e encontre rapidamente o que precisa. Vamos começar com os comandos básicos e depois aprofundar nos tipos de caminhos e atalhos.

pwd, cd, ls

O comando pwd (print working directory) exibe o caminho absoluto do diretório atual. É útil para confirmar onde você está, especialmente após navegar por vários níveis. Exemplo:

$ pwd
/home/usuario

O comando cd (change directory) muda o diretório atual para o especificado. Se executado sem argumentos, leva ao diretório home do usuário. Exemplos:

$ cd /tmp
$ pwd
/tmp
$ cd
$ pwd
/home/usuario

O comando ls lista o conteúdo do diretório atual ou de um diretório especificado. Possui diversas opções, como -l para formato longo, -a para incluir arquivos ocultos e -h para tamanhos legíveis. Exemplo:

$ ls -la
-rw-r--r-- 1 usuario grupo 1234 Jan 1 12:34 arquivo.txt
drwxr-xr-x 2 usuario grupo 4096 Jan 1 12:34 documentos

Combine esses comandos para navegar e inspecionar diretórios rapidamente.

Caminhos absolutos e relativos

Um caminho absoluto começa com a barra / (raiz) e especifica a localização exata de um arquivo ou diretório, independentemente do diretório atual. Exemplo: /home/usuario/documentos/arquivo.txt.

Um caminho relativo não começa com / e é interpretado a partir do diretório atual. Por exemplo, se você está em /home/usuario, o caminho relativo documentos/arquivo.txt refere-se a /home/usuario/documentos/arquivo.txt. Caminhos relativos são mais curtos e flexíveis, mas dependem do contexto.

Exemplo prático:

$ pwd
/home/usuario
$ cd documentos
$ pwd
/home/usuario/documentos
$ cd /home/usuario/documentos  # caminho absoluto
$ pwd
/home/usuario/documentos

Use caminhos absolutos para scripts que precisam funcionar de qualquer lugar, e relativos para navegação interativa rápida.

Diretórios especiais (. .. ~)

O shell reserva alguns nomes especiais para diretórios:

  • . (ponto): representa o diretório atual. Útil para executar scripts ou referenciar o local atual explicitamente.
  • .. (dois pontos): representa o diretório pai (um nível acima). Exemplo: cd .. sobe um nível.
  • ~ (til): representa o diretório home do usuário atual. Exemplo: cd ~ leva ao home.

Exemplos:

$ pwd
/home/usuario/documentos
$ cd ..
$ pwd
/home/usuario
$ cd .
$ pwd
/home/usuario
$ cd ~/documentos
$ pwd
/home/usuario/documentos

Esses atalhos são especialmente úteis para navegar rapidamente sem digitar caminhos completos.

Atalhos

Além dos diretórios especiais, existem atalhos que economizam tempo no terminal:

  • cd -: retorna ao diretório anterior. Exemplo: cd /tmp; cd /home; cd - volta para /tmp.
  • cd ~nome_usuario: vai para o home de outro usuário (se você tiver permissão).
  • pushd e popd: gerenciam uma pilha de diretórios. pushd /tmp adiciona o diretório atual à pilha e muda para /tmp; popd retorna ao topo da pilha.
  • dirs: exibe a pilha de diretórios.

Exemplo com pushd/popd:

$ pwd
/home/usuario
$ pushd /tmp
/tmp ~/home/usuario
$ pwd
/tmp
$ pushd /var
/var /tmp ~/home/usuario
$ dirs
/var /tmp ~/home/usuario
$ popd
$ pwd
/tmp
$ popd
$ pwd
/home/usuario

Use cd - para alternar entre dois diretórios frequentemente, e pushd/popd para navegação mais complexa.

Boas práticas e observações finais

Sempre verifique seu diretório atual com pwd antes de executar comandos que afetam arquivos, para evitar erros. Prefira caminhos relativos em scripts curtos e absolutos em scripts reutilizáveis. Use tab completion para preencher nomes de diretórios automaticamente (pressione Tab). Lembre-se de que nomes de arquivos com espaços precisam ser escapados com aspas ou barra invertida.

Exercícios

  1. Qual comando mostra o diretório atual?

    ✓ Resposta: O comando pwd (print working directory) exibe o caminho absoluto do diretório atual.
  2. Explique a diferença entre caminho absoluto e relativo, dando um exemplo de cada.

    ✓ Resposta: Caminho absoluto começa com / e especifica a localização exata a partir da raiz. Exemplo: /home/usuario/documentos/arquivo.txt. Caminho relativo não começa com / e depende do diretório atual. Exemplo: se estiver em /home/usuario, o relativo documentos/arquivo.txt refere-se ao mesmo arquivo.
  3. O que faz o comando cd ..?

    ✓ Resposta: cd .. muda o diretório atual para o diretório pai (um nível acima).
  4. Cite dois atalhos para navegação rápida no terminal e exemplifique seu uso.

    ✓ Resposta: Dois atalhos: cd - (volta ao diretório anterior) e cd ~ (vai para o home do usuário). Exemplo: cd /tmp; cd ~; cd - retorna a /tmp.
  5. Usando pushd e popd, como você alternaria entre três diretórios? Escreva os comandos.

    ✓ Resposta:
    pushd /dir1
    pushd /dir2
    pushd /dir3
    popd  # vai para /dir2
    popd  # vai para /dir1
    popd  # volta ao original

Referências