Caminhos Absolutos vs Relativos: ., .., e ~ Explicados
O que você vai conseguir fazer
- Usar caminhos absolutos e relativos na situação certa
- Ler corretamente o que ., .. e ~ indicam
Pré-requisitos (leia estes primeiro)
Confuso com a Escrita dos Caminhos?
"O guia diz cd ../logs, mas o que é esse ..?" "Onde exatamente fica o ~ em ~/Documents?" Mal você começa a aprender comandos e já se depara com esses "endereços" cheios de símbolos. Eles se chamam caminhos.
Neste guia, Lina e o veterano Linny percorrem juntos a diferença entre caminhos absolutos e relativos. Eles também explicam o significado dos três símbolos: ., .. e ~. Ao final, você conseguirá olhar para qualquer caminhoUma sequência de texto que descreve a localização de um arquivo ou diretório. e saber exatamente para qual local ele aponta.
O que Você Vai Aprender
- Que um "caminho" é o endereço de um arquivo ou pastaUm local que organiza arquivos. É a mesma ideia da "pasta" do Windows ou macOS.
- A diferença entre caminhos absolutos (a partir de
/) e caminhos relativos (a partir de onde você está) - O que
.(aqui),..(um nível acima) e~(home) significam - Que o mesmo local pode ser escrito de duas formas diferentes
- Como usar
pwdpara verificar onde você está quando se perder - Como testar seu entendimento com três mini exercícios
1. O que É um Caminho, Afinal?
Conclusão: Um caminho é o "endereço" de um arquivo ou pasta — a rota que você percorre entre pastas, escrita com
/como separador.
/home/lina/memo.txt o tempo todo, mas nunca entendo o que significam de verdade.../home/lina/memo.txt significa "o memo.txt dentro da pasta lina, dentro da pasta home". O / (barra) é o separador./) é a regra básica para ler um caminho.Um caminho é a rota até um arquivo
No Linux, todo arquivo e pasta vive em uma única árvore que começa em / (a raiz). Um caminho descreve quais galhos dessa árvore seguir para chegar ao destino. A própria árvore é explicada em A Estrutura de Diretórios do Linux.
2. O que É um Caminho Absoluto?
Conclusão: Um caminho absoluto sempre começa em
/(a raiz). Ele aponta para o mesmo lugar independentemente de onde você está. Pense nele como um endereço completo escrito desde o país.
/ representa o topo da árvore, o diretório raiz. Um caminho absoluto escreve a rota completa desse topo até o destino, sem omitir nada./etc/hosts continua sendo /etc/hosts, esteja você na sua pasta home ou em qualquer outro lugar. É como um endereço postal completo escrito desde o país.cd /etc pwd
/etc
Como /etc começa com /, você vai para lá independentemente de onde está.
A dica está na / inicial
- Começa em
/(a raiz) - Mesmo resultado independentemente da sua localização atual
- Melhor quando você quer apontar para "exatamente este lugar" — arquivos de configuração, scripts, etc.
3. O que É um Caminho Relativo?
Conclusão: Um caminho relativo usa sua localização atual como ponto de partida. Esse local é chamado de "diretório atual" (também conhecido como diretório de trabalho). Um caminho relativo não começa com
/, e o local para onde aponta muda quando sua posição muda.
/. Ele escreve a rota a partir de onde você está agora./home/lina e digita cd Documents, vai para /home/lina/Documents. Significa "entrar em Documents a partir daqui".cd Documents em outro lugar...?/var, ele procura /var/Documents. Por isso se chama "relativo" — para onde aponta depende de onde você está.pwd
/home/lina
cd Documents pwd
/home/lina/Documents
O resultado de um caminho relativo depende de onde você está
O mesmo cd Documents leva a lugares diferentes dependendo do diretório atual. Quando um comando não faz o que você espera, verifique sua localização primeiro com pwd.
4. O que Significam ., .., e ~?
Conclusão:
.significa "aqui (localização atual)"...significa "um nível acima".~significa "seu diretório home".
., .. e ~, de verdade? Sempre foram um mistério para mim.. (um ponto) significa "o lugar onde você está agora". .. (dois pontos) significa "um nível acima". ~ (til) é um atalho para "seu diretório home" (a pasta onde você começa ao fazer login, também chamada de diretório home).| Símbolo | Nome | Significado | Exemplo |
|---|---|---|---|
. |
ponto / atual | Onde você está agora | ./script.sh (o script aqui) |
.. |
ponto-ponto | Um nível acima | cd .. (para a pasta pai) |
~ |
til | Seu diretório home | cd ~ (voltar direto para home) |
Subir um nível com ..
.. com mais frequência./home/lina/Documents, cd .. te leva para /home/lina. Mais um cd .. te leva para /home.pwd
/home/lina/Documents
cd .. pwd
/home/lina
Você também pode combiná-los. cd ../../etc significa "subir dois níveis e depois entrar em etc".
Voltar para home em um passo com ~
~ é útil?cd ~ te leva direto para o seu diretório home (como /home/lina). Pense nele como um botão "ir para home" quando você está perdido no fundo de alguma pasta. Rodar cd sem argumento faz a mesma coisa.cd ~ pwd
/home/lina
Escrever ~/Documents aponta para "Documents dentro do seu home", independentemente de onde você está.
Quando usar .?
Raramente você digita . sozinho. Mas ele aparece com frequência ao rodar scripts, como ./script.sh. Isso significa "o script.sh na pasta atual".
Sem o ./, o shellUm programa interativo que interpreta os comandos digitados e os executa. (o programa que recebe e executa os comandos que você digita, rodando dentro do terminal) busca apenas nos locais padrão de comandos — ele não verifica a pasta atual. Por isso o script pode não ser encontrado e o comando falha. Prefixar com ./ é a forma padrão de rodar seus próprios scripts.
5. Absoluto ou Relativo — Qual Usar?
Conclusão: Use caminho absoluto quando precisa de certeza. Use caminho relativo para se mover rapidamente para algo próximo. O mesmo local muitas vezes pode ser escrito das duas formas.
/home/lina, tanto /home/lina/Documents (absoluto) quanto Documents (relativo) levam ao mesmo lugar. Ser mais curto é o ponto forte do caminho relativo.Aqui está o mesmo movimento escrito de duas formas (localização atual é /home/lina):
cd /home/lina/Documents
cd Documents
Ambos movem você para o mesmo /home/lina/Documents.
Regras práticas
- Caminho absoluto: quando quer apontar para arquivos de configuração, scripts ou um lugar distante "com certeza"
- Caminho relativo: quando quer chegar a algo "próximo" — logo ao lado ou um nível acima — rapidamente
- Na dúvida, um caminho absoluto é mais seguro (não depende da sua localização atual)
6. E Se Você Se Perder?
Conclusão: Use
pwdpara verificar onde você está. Quando um caminho relativo se comporta de forma inesperada, suspeite primeiro da sua localização atual.
cd Documents e apareceu uma mensagem em inglês, sem conseguir mudar de pasta. O mesmo comando tinha funcionado pouco antes... Por que falhou só dessa vez?cd Documents
bash: cd: Documents: No such file or directory
No such file or directory significa "não existe nenhum arquivo ou pasta com esse nome aqui". Um caminho relativo é baseado na sua localização atual. Então, se você está em um lugar diferente do que pensava, ele falha.pwd. Significa "print working directory" e mostra onde você está. Quando encontrar um erro, verifique sua localização com pwd primeiro.pwd
/var/log
/var/log! O cd Documents de antes funcionou porque eu estava em /home/lina. Dessa vez falhou porque eu estava em outro lugar. Agora faz sentido.Se te dizem que "Documents não existe", o resultado do pwd te permite perceber "ah, estou em /var/log — vou usar cd ~/Documents". Listar a pasta atual com ls para ver para onde você pode navegar também ajuda.
Você pode praticar a movimentação entre caminhos direto no navegador. Abra o terminal do Penguin Gym Linux e digite cd e pwd várias vezes para sentir como sua localização muda. A prática é a forma mais rápida de aprender.
Mini Exercícios
Conclusão: Três exercícios para verificar seu entendimento de caminhos absolutos, relativos e
...~.
Exercício 1: Lina está em /home/lina/Documents. O que ela deve digitar para voltar a /home/lina?
Ver Dica 1 (Direção)
O destino está um nível acima de onde a Lina está agora. Um dos símbolos da tabela descreve esse movimento.
Ver Dica 2 (Nome do Comando)
Use cd ...
Ver Resposta
pwd
/home/lina/Documents
cd .. pwd
/home/lina
Exercício 2: Lina está em /var/log. O que ela deve digitar para voltar direto ao diretório home dela (/home/lina) em um único passo?
Ver Dica 1 (Direção)
Existe um símbolo especial que leva direto para o diretório home, sem escrever o caminho absoluto completo.
Ver Dica 2 (Nome do Comando)
Use cd ~. Rodar cd sem argumento dá o mesmo resultado.
Ver Resposta
pwd
/var/log
cd ~ pwd
/home/lina
Exercício 3: Lina está em /var. Ela digitou o caminho relativo cd Documents e apareceu bash: cd: Documents: No such file or directory. O que ela deve digitar para chegar com segurança a Documents, dentro do diretório home dela?
Ver Dica 1 (Direção)
Um caminho relativo é baseado na sua localização atual. Pense em qual tipo de caminho aponta para o mesmo lugar não importa onde você esteja.
Ver Dica 2 (Nome do Comando)
Combine cd com um caminho absoluto, ou com ~.
Ver Resposta
pwd
/var
cd /home/lina/Documents pwd
/home/lina/Documents
cd ~/Documents também funciona.
Resumo
- Um caminho é o "endereço" de um arquivo ou pasta, escrito como uma rota separada por
/ - Um caminho absoluto começa em
/(a raiz) e aponta para o mesmo lugar independentemente da sua localização - Um caminho relativo não começa com
/e é baseado no seu diretório atual .é aqui,..é um nível acima e~é seu diretório home- Quando um caminho relativo te confunde, verifique sua localização com
pwdprimeiro