Linux: Navegação no Sistema de Arquivos

O Linux organiza todos os arquivos e diretórios em uma árvore enraizada em /. Essa árvore é chamada de Filesystem Hierarchy Standard (FHS).

📋 Pré-requisitos: Você deve primeiro concluir

1. O Que Você Vai Aprender


2. A História de um Iniciante Perdido

(1) O Problema: Não Saber Onde Você Está na Árvore de Diretórios

Alex acessou um servidor pela primeira vez e ficou confuso com os nomes de diretórios desconhecidos sob /: /bin, /etc, /var, /usr... Não sabia para que servia cada diretório nem onde estava no momento.

(2) Três Mapas

O engenheiro sênior Bob desenhou três "mapas":

BASH
# Mapa 1: Onde estou?
pwd
# Saída: /home/charlie

# Mapa 2: O que tem aqui?
ls
# Saída: Desktop  Documents  Downloads

# Mapa 3: Vá até lá
cd /etc

(3) O Benefício: Navegação Livre

Alex entendeu a relação entre os três comandos: pwd localiza sua posição atual, ls mostra o que está ao seu redor e cd leva você até o destino. A partir daí, pôde navegar livremente pelo sistema de arquivos de qualquer servidor Linux.


3. Pontos-Chave

(1) Referência Rápida dos Diretórios Padrão FHS

A estrutura de diretórios do Linux segue um padrão unificado. Você não precisa memorizar todos, mas estes são essenciais:

💡 Dica: O princípio central do FHS (Filesystem Hierarchy Standard) é "dividir por função" — /etc para configurações, /var para dados variáveis, /usr para programas de usuário. Quando você entende essa lógica, mesmo que esqueça um diretório específico, consegue inferir onde um arquivo provavelmente está a partir de sua função.

Diretório Significado Finalidade
/ Diretório raiz O ponto de partida do sistema de arquivos; todos os caminhos começam aqui
/home Diretórios home dos usuários Os arquivos pessoais de cada usuário ficam aqui (por exemplo, /home/alice)
/etc Arquivos de configuração Configurações do sistema e de daemons (por exemplo, Nginx, SSH)
/var Dados variáveis Logs (/var/log), bancos de dados, dados em cache
/tmp Arquivos temporários Diretório temporário, limpo automaticamente na reinicialização

ℹ️ Nota: /tmp normalmente é apagado após uma reinicialização do sistema (sistemas modernos usam tmpfs, que armazena /tmp na memória). Não guarde dados importantes ou arquivos de longo prazo em /tmp — é adequado apenas para uso temporário. | /usr | Recursos do sistema para usuários | Programas e bibliotecas do sistema (/usr/bin, /usr/lib) | | /bin | Comandos essenciais | Comandos básicos como ls, cp, mv | | /opt | Software opcional | Diretório de instalação de softwares de terceiros |

(2) Caminhos Absolutos vs Relativos

Tipo Característica Exemplo
Caminho absoluto Começa com /, a partir da raiz /home/alice/Documents/report.md
Caminho relativo Começa a partir do diretório atual Documents/report.md (estando em /home/alice)
TEXT
# Atualmente em /home/alice
# Usando um caminho absoluto
cd /etc/nginx

# Usando um caminho relativo (mesmo efeito, partindo do diretório atual)
cd ../../../etc/nginx

(3) Significados Especiais de . e ..

Símbolo Significado
. Diretório atual
.. Diretório pai
~ Diretório home do usuário atual
~alice Diretório home do usuário alice
- Diretório anterior (apenas com cd)
💡 Dica: cd - permite voltar rapidamente ao diretório de trabalho anterior — muito útil quando você alterna entre dois diretórios. Por exemplo, se você alterna frequentemente entre /var/log e /etc/nginx, basta digitar cd - a cada vez.

TEXT
# Atualmente em /home/alice/projects
cd .       # Sem mudança (permanece no diretório atual)
cd ..      # Vai para /home/alice
cd ../..   # Vai para /home
cd ~       # Vai para /home/alice
cd -       # Volta ao diretório anterior

(4) Opções Comuns do ls

TEXT
# Uso básico
ls              # Lista nomes de arquivos (compacto)
ls -l           # Formato longo (permissões/dono/tamanho/hora)
ls -a           # Mostra todos os arquivos (incluindo ocultos que começam com .)
ls -la          # Combinação comum
ls -lh          # Tamanhos em formato legível (KB/MB/GB)
ls -R           # Lista subdiretórios recursivamente
ls -S           # Ordena por tamanho de arquivo
ls -t           # Ordena por data de modificação

(5) Curingas

Curinga Regra de correspondência Exemplo
* Qualquer número de caracteres *.txt corresponde a todos os arquivos que terminam em .txt
? Um único caractere file?.md corresponde a file1.md, file2.md
[abc] Qualquer caractere do conjunto file[12].md corresponde a file1.md / file2.md
[!abc] Exclui caracteres do conjunto [!a-z]* corresponde a arquivos que não começam com uma letra
BASH
# Exemplos de curingas
ls *.md                # Lista todos os arquivos Markdown
ls file?.txt           # Lista file1.txt, file2.txt etc.
ls [abc]*              # Lista arquivos que começam com a, b ou c
ls [0-9]*              # Lista arquivos que começam com um dígito

(6) ▶ Exemplo: pwd — Me Diga Onde Estou

BASH
# Sempre que estiver em dúvida sobre sua localização atual, use pwd
pwd
# Saída: /home/alice

# Tente depois de mudar para um diretório diferente
cd /etc
pwd
# Saída: /etc

Saída:

TEXT
/home/alice
/etc

(7) ▶ Exemplo: cd — Me Leve Através dos Diretórios

TEXT
# Vá para o home
cd ~

# Volte ao diretório anterior
cd /etc
cd /var/log
cd -    # Volta para /etc

# Vá para a raiz
cd /

# Vá para o home de um usuário específico
cd ~alice

(8) ▶ Exemplo: ls — Me Mostre o Que Tem Aqui

TEXT
# Modo compacto
ls /etc

# Formato longo (inclui permissões, tamanho, data de modificação)
ls -l /etc

# Mostrar arquivos ocultos
ls -la ~

# Tamanhos em formato legível
ls -lh /var/log

# Visão recursiva
ls -R ~/projects | head -20

# Ordenar por tamanho de arquivo (maiores primeiro)
ls -lhS /var/log

(9) ▶ Exemplo: Arquivos Ocultos

No Linux, qualquer arquivo ou diretório que comece com . é oculto. ls não os exibe por padrão.

BASH
# Ver arquivos ocultos no diretório home
ls -la ~

# Arquivos e diretórios ocultos comuns
# .bashrc        configuração do bash
# .bash_profile  configuração do Shell de login
# .gitconfig     configuração do Git
# .ssh/          chaves e configuração SSH
# .vimrc         configuração do vim

Saída:

TEXT
total 48
drwxr-xr-x  1 alice alice 4096 Jul  8 10:23 .
drwxr-xr-x  1 alice alice 4096 Jul  8 10:23 ..
-rw-r--r--  1 alice alice  220 Jul  8 10:23 .bash_logout
-rw-r--r--  1 alice alice 3771 Jul  8 10:23 .bashrc
-rw-r--r--  1 alice alice  807 Jul  8 10:23 .profile
drwx------  2 alice alice 4096 Jul  8 10:23 .ssh
-rw-r--r--  1 alice alice  256 Jul  8 10:23 .vimrc

(10) ▶ Exemplo: Curingas em Ação

TEXT
# Listar todos os arquivos .log
ls -la /var/log/*.log

# Listar arquivos cujos nomes começam com "access"
ls -la /var/log/access*

# Apagar todos os arquivos .tmp
rm *.tmp

# Copiar todos os arquivos .jpg para outro diretório
cp *.jpg ~/Pictures/

(11) ▶ Exemplo Abrangente: Aventura no Sistema de Arquivos

BASH
# A primeira aventura de Alex no sistema de arquivos

# 1. Onde estou?
pwd

# 2. Veja o que há no diretório raiz
ls -la /

# 3. Vá para /etc e verifique as configurações do sistema
cd /etc
ls | head -20

# 4. Vá para /var/log para ver os logs
cd /var/log
ls -lhS | head -10    # Os 10 maiores arquivos de log

# 5. Volte para o home
cd ~
ls -la

# 6. Veja o que está no desktop
ls -la ~/Desktop

❓ Perguntas Frequentes

P: Qual é a diferença entre / e ~? R: / é o diretório raiz, o nível mais alto de toda a árvore. ~ é o diretório home do usuário atual (geralmente /home/nome-do-usuário). Existe apenas uma raiz, mas cada usuário tem seu próprio diretório home.

P: Por que arquivos que começam com . ficam ocultos? R: É uma convenção — arquivos que começam com . são considerados "arquivos de configuração" ou "arquivos de sistema" que os usuários não precisam ver no uso diário. Isso reduz o ruído na saída do ls.

P: O que significa a primeira coluna drwxr-xr-x na saída do ls -l? R: O primeiro caractere é o tipo de arquivo (d para diretório, - para arquivo comum, l para link). Os 9 caracteres seguintes são divididos em três grupos: permissões do dono do arquivo (user) (3 bits), permissões do grupo (group) (3 bits) e permissões dos outros (other) (3 bits). r=read (leitura), w=write (escrita), x=execute (execução).

P: Os arquivos em /tmp desaparecem depois de reiniciar? R: Por padrão, sim. Muitos sistemas limpam /tmp na inicialização. Portanto, /tmp é adequado apenas para arquivos temporários — não guarde dados importantes lá.

P: Como alterno rapidamente entre caminhos longos? R: Use o autocompletar com Tab (digite os primeiros caracteres e pressione Tab), cd - para voltar, pushd/popd para gerenciar uma pilha de diretórios, ou a variável de ambiente CDPATH.


📖 Resumo


📝 Exercícios

  1. Básico (Dificuldade ⭐): Use pwd para confirmar sua localização atual, depois cd / para ir ao diretório raiz e ls -la / para listar todos os arquivos
  2. Intermediário (Dificuldade ⭐⭐): Use cd ~ para ir ao home e ver os arquivos ocultos, depois vá até /var/log para ver o diretório de logs, use cd - para alternar entre os dois e, por fim, use ls *.conf em /etc para encontrar arquivos de configuração
  3. Avançado (Dificuldade ⭐⭐⭐): Desenhe um diagrama da estrutura de diretórios da raiz do seu sistema (incluindo pelo menos 5 diretórios padrão FHS), anotando a finalidade de cada um e se ele permite escrita
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%