Os links em Unix são essencialmente os ponteiros que se associam aos ficheiros e directórios. A maior diferença entre um link rígido e um soft link é que o hard link é a referência directa ao ficheiro, enquanto o soft link é a referência pelo nome, o que significa que aponta para um ficheiro pelo nome do ficheiro.
O link duro liga os ficheiros e directórios no mesmo sistema de ficheiros, mas o soft link pode atravessar os limites do sistema de ficheiros.
Antes de entender os links devemos primeiro entender inode, um inode é uma estrutura de dados composta de metadados sobre o arquivo como data de criação do arquivo, autorizações do arquivo, dono do arquivo e mais.
Conteúdo: Hard link Vs Soft link
- Gráfico de comparação
- Definição
- Diferenças-chave
- Conclusão
Gráfico de comparação
Basis para comparação | Link duro | Link suave |
---|---|---|
Basic | Um arquivo pode ser acessado através de muitos nomes diferentes conhecidos como links duros. | Um ficheiro pode ser acedido através de diferentes referências apontando para esse ficheiro é conhecido como soft link. |
Validação de link, quando o ficheiro original é apagado | Permanece válido e o ficheiro pode ser acedido. | Inválido |
Comando usado para criação | ln | ln -s |
Número de inode | Same | Diferente |
Pode ser ligado | à sua própria partição. | A qualquer outro sistema de ficheiros mesmo ligado em rede. |
Consumo de memória | Menos | Mais |
Caminho Relativo | Não aplicável | Mitido |
Definição de link rígido
Ligações difíceis ligam directamente dois ficheiros no mesmo sistema de ficheiros e para identificação utiliza o número de inode do ficheiro. Links rígidos não podem ser implementados em diretórios (pois eles apontam para inode). Quando o comando “ln” é utilizado para gerar um link rígido, ele cria outro arquivo na linha de comando que pode ser utilizado para referenciar o arquivo original. Tanto o arquivo original como o gerado têm o mesmo inode e conteúdo; portanto eles terão as mesmas permissões e o mesmo dono.
A remoção do arquivo original não influencia o arquivo hard linked, e um arquivo hard linked permanecerá. O inode contém um contador, para calcular o número de ligações a si mesmo. Quando o contador indica o valor 0, então o inode é esvaziado. Sempre que você fizer qualquer alteração no link rígido, ele irá imitar no arquivo original.
Definição de link Soft
Ligações Soft são normalmente um caminho alternativo (ou um alias) para o arquivo original; estes também são referidos como links simbólicos. Ele inclui o nome do “target file” do link, flag que especifica que é um soft link. Quando um ficheiro é acedido, o soft link redirecciona-o para o ficheiro de destino através do caminho escrito no assunto do soft link.
Estes são muito úteis no caso do SO Windows onde o soft link se comporta como atalhos. A criação e eliminação dos soft links não afecta o ficheiro original. Se o ficheiro de destino for apagado, o soft link não aponta para lado nenhum e gera uma mensagem de erro quando o ficheiro de destino é acedido. Os links soft não utilizam o número do inode, ao contrário dos links rígidos. Um caminho absoluto ou relativo pode fazer parte dos links simbólicos.
Key Differences Between Hard link and Soft link
- A hard link é um nome adicional do ficheiro original que se refere ao inode para aceder ao ficheiro de destino. Em contraste, o link soft é distinto do ficheiro original e é um alias do ficheiro original mas não utiliza o inode.
- Quando um ficheiro original é eliminado o link soft torna-se inválido enquanto que um link hard é válido mesmo que o ficheiro alvo seja eliminado.
- No Linux, o comando utilizado para a criação do link hard é “ln”. Ao contrário, o comando usado para um link soft é “ln -s”.
- Link duro tem o mesmo número de inode diferente do link soft, onde o ficheiro de destino e o seu link soft têm um número de inode distinto.
- Link duro é restrito às suas próprias partições, mas os links soft podem cobrir diferentes sistemas de ficheiros.
- O desempenho do link duro é melhor que o do link soft em alguns casos.
- Caminho relativo e caminho absoluto ambos são permitidos em links soft. Pelo contrário, o caminho relativo não é permitido em um link rígido.
Conclusão
Um link rígido não requer espaço extra e resolução mais rápida, mas as mudanças aplicadas a um link rígido refletem no arquivo original. Por outro lado, o link soft precisa de espaço extra, mas qualquer alteração no link soft não tem impacto no arquivo original. Os links soft são permitidos para diretórios diferentes do link Hard.