Ubuntu Caminhos

Um caminho é o endereço de um arquivo ou pasta, como /home/ana/Documentos/notas.txt. Quase todo comando recebe caminhos: ls, cd, cp, rm… Se você escreve o caminho errado, o comando procura no lugar errado. Esta aula ensina as duas formas de escrever um endereço e os atalhos que poupam digitação.

Você vai aprender
  • A diferença entre caminho absoluto (começa em /) e relativo (começa onde você está).
  • Os atalhos ~, ., .. e -.
  • Como escrever nomes com espaços e acentos.
  • Como o Tab escreve o caminho por você e evita erros.

A ideia: endereço completo × direções a partir daqui

Pense em como você explica onde fica uma padaria:

  • Endereço completo: "Rua das Flores, 120, Centro, São Paulo". Funciona de qualquer lugar do mundo. Esse é o caminho absoluto.
  • Direções a partir daqui: "duas quadras para a frente e vire à direita". Só funciona se a pessoa estiver onde você está. Esse é o caminho relativo.
/home/ana/Documentos/notas.txt      ← absoluto: começa com /
Documentos/notas.txt                ← relativo: começa onde você está (aqui, em /home/ana)

A regra é simples: se começa com /, é absoluto. Qualquer outra coisa é relativa à pasta atual, aquela que o pwd mostra.


Caminho absoluto

O caminho absoluto parte da raiz / e desce pasta por pasta. Ele funciona igual, não importa onde você esteja.

/
A raiz: o ponto de partida.
home/
Desce para a pasta home.
ana/
Depois para ana.
Documentos/
Depois para Documentos.
notas.txt
E chega no arquivo.
$ pwd
/etc                                     « estou em /etc
$ cat /home/ana/Documentos/notas.txt
Comprar café                             « o caminho absoluto funciona de qualquer lugar
Ligar para o João
Estudar Ubuntu
Fazer backup das fotos

Caminho relativo

O caminho relativo parte da pasta atual. É mais curto, mas depende de onde você está.

$ pwd
/home/ana
$ cat Documentos/notas.txt
Comprar café                             « achou: procurou em /home/ana/Documentos
Ligar para o João
Estudar Ubuntu
Fazer backup das fotos
$ cd /etc
$ cat Documentos/notas.txt
cat: Documentos/notas.txt: No such file or directory   « procurou em /etc/Documentos

O segundo cat falhou porque procurou /etc/Documentos/notas.txt, que não existe. A mensagem está em inglês porque, no Ubuntu 26.04, o cat faz parte do coreutils reescrito em Rust, que ainda não foi todo traduzido.

Qual usar?

TipoVantagemUse quando…
AbsolutoFunciona de qualquer lugarEscrever scripts, configurações e tarefas agendadas (cron).
RelativoMais curtoDigitar no dia a dia, perto de onde você está.

Os atalhos: ~, ., .. e -

AtalhoSignificaExemplo
~Sua pasta pessoal (/home/ana)ls ~/Downloads
.A pasta atualcp /etc/hostname .
..A pasta de cima (pasta-mãe)cd ..
-A pasta onde você estava antes (só no cd)cd -

Til ~: sua casa

O ~ é trocado pelo shell pelo caminho da sua pasta pessoal antes de o comando rodar. Por isso ~/Downloads funciona de qualquer lugar, como um absoluto.

$ echo ~
/home/ana
$ echo ~/Documentos
/home/ana/Documentos
$ ls ~/Documentos
acesso.log  notas.txt  projetos  relatorio.odt

Ponto .: aqui

O ponto é útil quando um comando exige um destino e o destino é "onde estou":

cp
Copia.
/etc/hostname
O arquivo de origem (caminho absoluto).
.
O destino: a pasta atual.
$ cp /etc/hostname .
$ ls -l hostname
-rw-r--r-- 1 ana ana 9 Oct 15 10:30 hostname

Ele também aparece em ./script.sh: "rode o script.sh que está aqui". Sem o ./, o shell procura o programa só nas pastas do sistema (veja Primeiro Script).

Ponto-ponto ..: um nível acima

Cada .. sobe uma pasta. Você pode encadear: ../.. sobe duas.

$ pwd
/home/ana/Documentos/projetos/site
$ ls ..
backup.sh  site                  « o conteúdo de projetos
$ ls ../..
acesso.log  notas.txt  projetos  relatorio.odt     « o conteúdo de Documentos
$ cat ../../notas.txt
Comprar café
Ligar para o João
Estudar Ubuntu
Fazer backup das fotos

O .. pode ficar no meio do caminho: ../../Downloads significa "suba dois níveis e entre em Downloads".

Missão: você está em ~/Documentos/projetos/site. Sem usar cd, mostre o conteúdo de ~/Documentos/notas.txt com um caminho relativo (use ..).


Um mesmo arquivo, várias formas de escrever

Estando em /home/ana/Documentos, todos estes comandos mostram o mesmo arquivo:

cat notas.txt                        ← relativo, o mais curto
cat ./notas.txt                      ← relativo, com "aqui" explícito
cat ~/Documentos/notas.txt           ← a partir da pasta pessoal
cat /home/ana/Documentos/notas.txt   ← absoluto
cat ../Documentos/notas.txt          ← sobe um nível e desce de novo
cat projetos/../notas.txt            ← entra em projetos e sai

O último é estranho, mas válido: entra em projetos e sai de novo. Para descobrir o caminho absoluto "limpo" de qualquer coisa, use realpath:

$ realpath projetos/../notas.txt
/home/ana/Documentos/notas.txt

Nomes com espaços e caracteres especiais

O espaço separa argumentos. Um nome com espaço precisa de proteção, senão vira vários nomes. Há três formas:

FormaExemploObservação
Aspas duplascd "Área de trabalho"A mais usada. $VAR dentro ainda funciona.
Aspas simplescd 'Área de trabalho'Tudo literal; nada é interpretado.
Barra invertidacd Área\ de\ trabalhoProtege um caractere. É o que o Tab escreve.
$ cp -v Documentos/notas.txt "Área de trabalho/lembrete.txt"
'Documentos/notas.txt' -> 'Área de trabalho/lembrete.txt'
$ ls Área\ de\ trabalho
lembrete.txt

Com o ~, deixe-o fora das aspas, senão ele não é trocado: ls ~/"Área de trabalho" funciona, ls "~/Área de trabalho" não.

Dica para os seus arquivos

Nos nomes que você cria, prefira letras minúsculas, sem acentos, com hífen no lugar de espaço: relatorio-2026.pdf. Você nunca vai precisar de aspas.


Deixe o Tab escrever por você

Digite o começo de um nome e aperte Tab. O terminal completa o resto, já com as maiúsculas certas e os espaços protegidos. Se houver mais de uma opção, aperte Tab duas vezes para ver a lista.

$ ls Do
Documentos/  Downloads/      « depois de "ls Do", Tab duas vezes mostra as opções
$ ls Documentos/

Na segunda linha, a Ana digitou só mais um c (ls Doc) e apertou Tab: como só sobrou uma opção, o terminal completou Documentos/ sozinho.

O Tab é o melhor remédio contra "Arquivo ou diretório inexistente": se ele não completa, o nome não existe ali.

Missão: entre na pasta Área de trabalho. Experimente as três formas (aspas duplas, simples e barra invertida) e use o Tab digitando só cd Á.


Quando não funciona

O caminho relativo "sumiu"
$ ls Documentos
ls: não é possível acessar 'Documentos': Arquivo ou diretório inexistente

O que aconteceu: você não está onde pensa. O caminho relativo procurou /tmp/Documentos.

Como confirmar: olhe o prompt ou rode pwd.

Como resolver: use ~/Documentos, que funciona de qualquer lugar.

Maiúscula e minúscula
$ cd documentos
bash: cd: documentos: Arquivo ou diretório inexistente

O que aconteceu: o Linux diferencia maiúsculas: documentos ≠ Documentos.

Como resolver: use o Tab.

Til dentro das aspas
$ ls "~/Documentos"
ls: não é possível acessar '~/Documentos': Arquivo ou diretório inexistente

O que aconteceu: dentro de aspas, o ~ é só um caractere. O ls procurou uma pasta chamada "~".

Como resolver: ls ~/Documentos, ou ls "$HOME/Documentos".


Exercícios

1. Absoluto

Escreva o caminho absoluto da pasta Downloads da usuária ana:

2. Subir dois níveis

Você está em /home/ana/Documentos/projetos. Complete para listar /home/ana com caminho relativo:

ls

3. Copiar para cá

Complete para copiar /etc/hosts para a pasta atual:

cp /etc/hosts

4. Qual destes é um caminho absoluto?

5. Qual comando entra na pasta "Meus Projetos"?


Resumo

  • Começa com /: absoluto, funciona de qualquer lugar. Senão, é relativo à pasta atual.
  • ~ = sua pasta pessoal; . = aqui; .. = um nível acima; cd - = pasta anterior.
  • Nomes com espaço: aspas ou barra invertida. Deixe o ~ fora das aspas.
  • Use o Tab: ele completa o nome certo e mostra quando o caminho não existe.