Diferença entre links suaves e links rígidos

Diferença entre links suaves e links rígidos

No Linux, links para arquivos são criados da mesma maneira que as referências aos arquivos são criadas nas linguagens de programação mais comuns. Esses links são divididos em duas categorias: links rígidos e suaves.

Um link rígido é efetivamente uma réplica idêntica do arquivo; portanto, o link rígido e o arquivo real terão o mesmo inode.

Um link suave, também conhecido como link simbólico, funciona de maneira semelhante a um atalho ou ponteiro de um arquivo. Não é uma réplica exata do arquivo, mas um ponteiro para o original.

Os valores do inode de um link suave para um arquivo e o arquivo real diferem. Além disso, você não poderá acessar o conteúdo do link suave se você remover o arquivo real. Neste artigo, aprenderemos mais sobre links suaves e links difíceis.

Entenda a diferença entre links rígidos e links suaves

O que são links suaves no Linux?

Temos um recurso de atalho de arquivo no Windows que é usado para criar um atalho para arquivos. Um link suave é semelhante a um atalho de arquivo. Cada arquivo de reticulação suave tem seu próprio valor de inode, que se refere ao arquivo original. Quaisquer alterações nas informações em um arquivo são espelhadas no outro. Você pode conectar links suaves em diferentes sistemas de arquivos, mas se o arquivo de origem for removido ou transferido, o arquivo suave não funcionará corretamente. Este link é chamado de link suspenso. Remover um link suave não tem efeito, mas se você remover o arquivo original, pode causar o link.

Um link suave pode ser usado para apontar para um diretório e apenas mantém o caminho para o arquivo original, não seu conteúdo. O tamanho do link suave será igual ao arquivo para o qual o link soft é formado. Por exemplo, se o arquivo teabcd.txt é 5kb, o link suave deste arquivo também será de 5kb.

Um link suave:

  • pode atravessar o sistema de arquivos,
  • Permita que você se conecte nos diretórios,
  • tem diferentes permissões de arquivo e inode do arquivo original,
  • As permissões não serão modificadas,
  • e tem apenas o caminho do arquivo original, não seu conteúdo

O que são links difíceis no Linux?

Um link rígido no Linux é equivalente a um arquivo salvo em um disco rígido - e realmente se refere ou links para um local em um disco rígido. Um link rígido é essencialmente uma imagem espelhada do arquivo original. A diferença entre um link rígido e um link suave é que a remoção do arquivo de origem não tem efeito em um link rígido, mas torna um link suave impróprio. Portanto, o benefício mais significativo de fazer um link difícil é que você ainda pode acessar o conteúdo do arquivo, mesmo que você o apage sem intenção.

Um link rígido:

  • Não é possível atravessar as fronteiras do sistema de arquivos,
  • Não é possível conectar diretórios,
  • tem as mesmas permissões de arquivo e número de inode que o arquivo original
  • Se alterarmos as permissões do arquivo de origem, as permissões serão alteradas para o link rígido também
  • Contém o conteúdo do arquivo original, mesmo que o arquivo original seja destruído, você pode acessar o conteúdo.

Diferença entre links suaves e links rígidos

ParâmetroLink suaveLink rígido
Número do inodeNúmero de inode diferente do arquivo original.Mesmo número de inode que o arquivo original.
DiretórioLinks suaves podem vincular diretóriosLinks difíceis não podem vincular diretórios.
Extlui o arquivo originalO link não funcionará se o arquivo original for excluído, pois não acessa os dados no arquivo original. Não é nada mais do que um atalho para o arquivo original.O link rígido continuará operando mesmo que o arquivo original seja excluído, pois acessará os mesmos dados que o original.
VelocidadeLinks suaves são mais lentosLinks rígidos são mais rápidos que os links suaves.
Consumo de memóriaMaisMenos

Verifique a captura de tela abaixo das diferenças de inode entre os arquivos de link rígido e links suaves:

Inode mudanças no link suave e link duro

Como criar links difíceis e links suaves?

Vamos entender as diferenças com uma prática rápida. Crie um arquivo de texto simples em um diretório e nomeie o arquivo1.TXT. Vamos criar um link suave e um link rígido para este arquivo.

Criando link rígido:

  1. Para criar um link rígido, usamos o "LN" comando. Portanto, digite o seguinte comando na janela do seu terminal:
    LN File1.txt hardlink.TXT  
  2. Então, aqui estamos usando o comando 'in' para criar um link rígido, então estamos dando o nome do arquivo para o qual precisamos do link rígido, e então estamos nomeando o link rígido que é hardlink.TXT.

    Digite o seguinte comando depois de executar o comando anterior:

    ls -l  
  3. Isso mostrará que existem dois arquivos no diretório - file1.txt e hardlink.TXT. Agora vamos verificar se nosso arquivo de link rígido está funcionando ou não. Abra o hardlink.Arquivo TXT em um editor de texto:
    Nano Hardlink.TXT  
  4. Altere o conteúdo do arquivo e escreva algo diferente. Em seguida, abra o arquivo original:
    File1 de gato1.TXT  
  5. Você verá que as alterações feitas nos arquivos de link rígido são refletidas no arquivo original. Agora vamos excluir o arquivo original e ver se o arquivo de link rígido ainda funcionará ou não:
    rm file1.TXT  
  6. Execute o comando "LS" e você verá que existe apenas um arquivo no diretório Hardlink.TXT. Abra o arquivo e você verá que o arquivo ainda tem o mesmo conteúdo.

Criando link suave:

  1. Para demonstrar, agai, criei o arquivo.txt no diretório atual. Vamos criar um link suave para o mesmo. Execute o seguinte comando para criar um link suave:
    ln -s file1.txt softlink.TXT  
  2. Execute o ls -l comando e você verá que existem dois arquivos diferentes no diretório. Agora, se você digitar
    Softlink de gato.TXT  
  3. Você verá o conteúdo do arquivo1.txt como link suave está apontando para este arquivo. E se você remover o arquivo1.Arquivo TXT:
    rm file1.TXT  
  4. Novamente execute o ls -l comando e você verá um erro. É porque o arquivo original é removido e o link soft não pode funcionar sem isso. E se digitarmos:
    Softlink de gato.TXT  

    Você verá que não existe esse arquivo ou diretório

Empacotando

Um link rígido ocupa menos espaço e funciona mais rapidamente, mas as modificações feitas para ele são refletidas no arquivo original. Considerando que os links suaves precisam de mais espaço, quaisquer alterações no link soft não têm efeito no arquivo original. Ao contrário dos links rígidos, as conexões suaves com os diretórios são permitidos.