Diferença entre Soft Link e Hard Link no UNIX no SO

Um link no sistema baseado em UNIX é usado para estabelecer a conexão entre um arquivo e os dados reais no disco. É mais como um ponteiro ou uma referência que aponta para outro arquivo ou diretório, assim como o conceito de ponteiros nas linguagens de programação.

Digamos que um arquivo tenha um nome muito longo e, por alguns motivos, não possa ser alterado. No UNIX, podemos nos referir ao arquivo com uma referência usando um nome mais curto para facilitar o uso. Essas referências ao mesmo arquivo no UNIX são chamadas de links. Simplificando, um link é um meio de se referir ao conteúdo de um arquivo.

Existem dois tipos de links usados ​​no UNIX: Soft Links e Hard Links. Ambos são usados ​​basicamente para a mesma finalidade, exceto a maneira como eles se comportam.

O que é um Soft Link?

Um link suave ou um rosa simbólico é um pequeno arquivo de ponteiro que associa um nome de arquivo ao nome do caminho. Não é nada, mas é um atalho para o arquivo original, semelhante à opção de atalho nos sistemas operacionais Windows. Ele simplesmente serve como uma referência para outro arquivo ou diretório sem o conteúdo real do arquivo, facilitando a exclusão dos links simples, sem afetar o conteúdo do arquivo ou diretório original..

Em termos simples, um link físico geralmente é um alias para o arquivo original que redireciona para o arquivo ou diretório de destino quando acessado através do nome do caminho especificado no assunto do link virtual. Além disso, você pode usar links flexíveis para vincular o sistema de arquivos.

O que é um Hard Link?

Um Hard Link é simplesmente uma réplica do arquivo original que serve como referência ou ponteiro para o mesmo arquivo, facilitando o acesso, mesmo que o arquivo original seja removido ou movido de seu local original. Diferentemente dos links diretos, as alterações feitas nos arquivos vinculados permanecem em vigor em outros arquivos, e o vínculo físico continuará funcionando mesmo se você excluir o arquivo de origem do sistema.

Os links físicos compartilham o mesmo valor de Inode e, diferentemente dos links físicos, eles apontam para o local do arquivo em vez do diretório. Geralmente é usado nos sistemas de arquivos que permitem mais do que no link físico para o mesmo arquivo. Simplificando, um link físico é apenas um nome adicional para um arquivo já existente em sistemas baseados em UNIX.

Diferença entre Soft Link e Hard Link no UNIX

Significado

Um link virtual, também denominado link simbólico, é um ponteiro especial que estabelece links entre arquivos. É muito semelhante ao recurso de atalho disponível nos sistemas operacionais Windows. Um link simples é simplesmente um atalho de um arquivo que serve como referência para outro arquivo ou diretório. Um link físico é muito diferente de um link virtual. Serve como referência ou ponteiro para o arquivo original, o que significa que é a cópia exata do arquivo original para o qual está apontando. Simplificando, um link físico é apenas um nome adicional para um arquivo já existente.

Comportamento

Como um arquivo vinculado temporariamente contém um valor de Inode separado apontando para o arquivo original, o link se torna inacessível se o arquivo ou diretório original for removido do sistema. É apenas um atalho para um arquivo, para que você possa excluir os links sem afetar o arquivo ou diretório original. Diferentemente dos links virtuais, os links físicos compartilham o mesmo valor de Inode que o original apontando para o mesmo local do arquivo. Os links físicos são mais flexíveis que os soft links, porque você pode acessar o arquivo mesmo que o arquivo original seja removido do sistema.

Comando

Para estabelecer links entre arquivos no sistema baseado em UNIX, você precisa usar o comando "In". Um link virtual refere-se a um caminho simbólico que indica a localização do arquivo original, mas não o conteúdo. Um link virtual é criado usando um comando "In -s".

Em -s

Aqui, você substitui o 'arquivo_de_origem' pelo arquivo original para o qual deseja criar um link virtual e 'meuarquivo' pelo nome do link virtual ou do link simbólico e o comando In -s cria o link virtual para um arquivo nome, ambos no diretório atual.

Por outro lado, o comando "In" é usado para criar um link físico. O comando In é um comando UNIX padrão usado para criar um link físico para apontar para vários arquivos com o mesmo nome.

Dentro

Estrutura

Ao contrário dos links flexíveis que podem ser usados ​​para vincular arquivos e diretórios, os links físicos podem vincular apenas arquivos, mas não diretórios. A diferença fornece aos links flexíveis certas qualidades que os links físicos não possuem, como a capacidade de vincular o sistema de arquivos. A criação e exclusão de links simbólicos não afetarão o arquivo original. Os links físicos, por outro lado, não podem ser usados ​​para vincular arquivos fora do sistema de arquivos. Os links físicos compartilham o mesmo valor de Inode com o conteúdo real do arquivo, portanto, remover qualquer link não afetará outros links e ainda mostrará o conteúdo do arquivo.

Soft Link vs. Hard Link: Gráfico de comparação

Resumo de link suave vs. link físico

Em poucas palavras, tanto os soft links quanto os hard links permitem que mais de um nome de arquivo se refira ao mesmo arquivo em outro lugar, mas a diferença está na maneira como eles se comportam quando o link de origem é removido do sistema. Um link físico ocupa menos espaço do que um link virtual, mas qualquer alteração feita no link físico acabará refletindo no arquivo original, enquanto qualquer alteração no link virtual não terá efeito no arquivo original. Um link flexível é como um recurso de atalho do sistema operacional Windows usado como um alias para se referir ao arquivo ou diretório original, enquanto um link físico é como uma réplica do arquivo original que vincula dois arquivos no mesmo sistema de arquivos.