Quais são alguns usos típicos de links físicos?

8

Todo mundo que estava acostumado com o Windows pode imaginar o que são links simbólicos e como eles são usados. Por outro lado, o conceito de link físico é estranho para o Windows (estou correto?).

Eu gostaria de saber quais são os usos típicos de hard links no Linux. Eu já vi posts diferentes descrevendo a diferença em como eles funcionam. O que estou perguntando é quais são algumas situações típicas em que um usuário estaria melhor usando links físicos em vez de links simbólicos?

    
por To Do 06.12.2012 / 10:42

2 respostas

8

Eu uso um link físico onde eu preciso de um único arquivo em dois ou mais lugares, eu prevejo que um dia eu vou querer deletar um dos locais, e eu posso esquecer que eu tenho um link para o arquivo. Isso me impede de acabar com um link simbólico para um arquivo que não existe mais.

Esclarecimento:

Um nome de arquivo é, na verdade, um link físico para o arquivo. Assim, cada arquivo tem pelo menos um link físico, sendo o que normalmente consideramos como "o" nome do arquivo. Quando você exclui um arquivo, na verdade, você está removendo seu link físico (daí o nome "remover", ou seja, rm , em vez de "excluir"). Quando um arquivo tem seu último hard link removido, o sistema também apaga o arquivo.

    
por Paddy Landau 06.12.2012 / 16:19
7

Links rígidos permitem ...

  • um único executável para ter mais de um nome.

    Exemplo:

    ls -l /bin | grep -v ' 1 ' | sort listará os que estão em /bin para você. Resultado ...

    -rwxr-xr-x 2 root root     63 2010-01-19 21:49 gunzip
    -rwxr-xr-x 2 root root     63 2010-01-19 21:49 uncompress
    -rwxr-xr-x 3 root root  26300 2011-12-12 22:40 bunzip2
    -rwxr-xr-x 3 root root  26300 2011-12-12 22:40 bzcat
    -rwxr-xr-x 3 root root  26300 2011-12-12 22:40 bzip2
    

    Em vez de 3 arquivos bunzip2 bzcat e bzip2 usam o mesmo arquivo e dentro do arquivo a distinção é feita para o que fazer. Salva código e menos código significa menos bugs possíveis e manutenção mais fácil.

  • um único arquivo a ser acessado por vários caminhos.

    Tome por exemplo um gerenciador de pacotes, que cria um diretório / usr / share / doc / $ packagename para cada pacote que está instalado e dentro desse diretório um arquivo chamado LICENSE com as informações de licença do pacote. Muitos pacotes em um sistema Linux típico são licenciados em GPL, portanto, em vez de ter 200 cópias da GPL no sistema de arquivos, pode haver apenas uma cópia e 199 links. ptman @ Serverfault

A razão pela qual os hard links funcionam aqui (e os soft não funcionam): remover apenas um dos hard links não remove o arquivo em si.

    
por Rinzwind 06.12.2012 / 14:12