Capítulo 3.7 - Links Simbólicos e Hard Links
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Compreender a diferença entre links simbólicos e hard links
- Criar e gerenciar links simbólicos
- Criar e gerenciar hard links
- Escolher o tipo de link adequado para cada caso
O que é um Link?
Um link é uma referência para um arquivo. O Linux suporta dois tipos de links: simbólicos (soft) e hard links.
Links Simbólicos (Soft Links)
Características
Um link simbólico é um ponteiro para outro arquivo ou diretório.
# Criar um link simbólico
ln -s /caminho/para/alvo link_simbolico
ln -s alvo.txt link.txt
# Ver para onde o link aponta
ls -l link.txt
readlink link.txt
Características:
- Aponta para um nome de arquivo (não para o inode)
- Pode apontar para arquivos inexistentes
- Pode apontar para diretórios
- Pode atravessar sistemas de arquivos
- Identificado por
lnols -l
Exemplo
# Criar um arquivo
echo "Conteúdo" > original.txt
# Criar um link simbólico
ln -s original.txt link.txt
# Verificar
ls -li
# 12345 -rw-r--r-- 1 user group 8 Jan 1 12:00 original.txt
# 12346 lrwxrwxrwx 1 user group 12 Jan 1 12:01 link.txt -> original.txt
# Ler via o link
cat link.txt # Exibe "Conteúdo"
# Remover o original
rm original.txt
# O link ainda existe, mas está quebrado
cat link.txt # Erro: No such file or directory
ls -l link.txt # link.txt -> original.txt (vermelho, quebrado)
Vantagens
- Pode apontar para diretórios
- Pode atravessar sistemas de arquivos
- Fácil de identificar (seta no ls -l)
- Pode apontar para arquivos inexistentes (para criação futura)
Desvantagens
- Links quebrados se o alvo for removido
- Levemente mais lento (diferenciação)
- Pode criar loops
Hard Links
Características
Um hard link é uma referência direta ao mesmo inode de outro arquivo.
# Criar um hard link
ln alvo.txt link.txt
# Verificar (mesmo inode)
ls -li
# 12345 -rw-r--r-- 2 user group 8 Jan 1 12:00 alvo.txt
# 12345 -rw-r--r-- 2 user group 8 Jan 1 12:00 link.txt
# Mesmo inode (12345), mesmo conteúdo
Características:
- Referencia o mesmo inode
- Mesmo arquivo (vários nomes)
- Não pode apontar para diretórios
- Não pode atravessar sistemas de arquivos
- Contagem de links no
ls -l(2 no exemplo)
Exemplo
# Criar um arquivo
echo "Conteúdo" > original.txt
# Criar um hard link
ln original.txt link.txt
# Verificar
ls -li
# Mesmo inode, mesmo tamanho, mesmo conteúdo
# Modificar via um link
echo "Novo conteúdo" > link.txt
# Verificar o original
cat original.txt # Exibe "Novo conteúdo"
# Remover o original
rm original.txt
# O link ainda funciona!
cat link.txt # Exibe "Novo conteúdo"
Contagem de Links
# Ver a contagem de links
ls -l arquivo.txt
# -rw-r--r-- 3 user group 1024 Jan 1 12:00 arquivo.txt
# O "3" indica 3 hard links para este arquivo
# O arquivo só é realmente removido quando
# a contagem de links chega a 0
Vantagens
- Não há link quebrado (mesmo se um nome for removido)
- Desempenho idêntico ao original
- Não há diferenciação
Desvantagens
- Não pode apontar para diretórios
- Não pode atravessar sistemas de arquivos
- Menos flexível
Comparação
| Característica | Link Simbólico | Hard Link |
|---|---|---|
| Inode | Diferente | Mesmo |
| Diretórios | Sim | Não |
| Sistemas de arquivos | Sim | Não |
| Arquivo inexistente | Sim | Não |
| Remoção do alvo | Link quebrado | Funciona |
| Desempenho | Levemente mais lento | Idêntico |
| Identificação | l no ls -l | Mesmo inode |
Casos de Uso
Links Simbólicos
Quando usar:
- Apontar para diretórios
- Criar atalhos
- Apontar para arquivos em outros sistemas de arquivos
- Configuração flexível
Exemplos:
# Atalho para diretório
ln -s /var/www/html ~/www
# Versão atual
ln -s app-v2.0 app-current
# Configuração
ln -s /etc/nginx/sites-available/meusite /etc/nginx/sites-enabled/
Hard Links
Quando usar:
- Backup de segurança (vários nomes)
- Economia de espaço (mesmo arquivo)
- Desempenho crítico
Exemplos:
# Vários nomes para o mesmo arquivo
ln arquivo.txt backup.txt
ln arquivo.txt arquivo_arquivo.txt
# Todos apontam para o mesmo inode
Comandos Úteis
# Ver todos os links para um inode
find /home -inum 12345
# Encontrar links simbólicos quebrados
find /home -type l ! -exec test -e {} \; -print
# Contar hard links
stat arquivo.txt | grep Links
# Ver para onde aponta um link simbólico
readlink -f link.txt # Caminho absoluto resolvido
Resumo
Neste capítulo, você aprendeu:
Links Simbólicos: Ponteiros para nomes de arquivos (ln -s)
Hard Links: Referências ao mesmo inode (ln)
Diferenças: Simbólicos mais flexíveis, hard links mais robustos
Casos de uso: Simbólicos para diretórios/flexibilidade, hard links para robustez
Gerenciamento: ls -li para visualizar, readlink para simbólicos
Próximos Passos
Capítulo 3.8: Tipos de Sistemas de Arquivos
Lab 3.3: Busca e Links
Capítulo criado em: Dezembro 2024