Existem basicamente duas limitações principais com links físicos:
- Os links físicos normalmente exigem que o link e o arquivo residam no mesmo sistema de arquivos.
- Somente o superusuário pode criar um link físico para um diretório.
Assim, foram introduzidos links simbólicos para contornar as limitações dos links físicos. Então, a pergunta é: os links físicos ainda são necessários? Pode haver situações em que eles são mais úteis?
Respostas:
Os hardlinks nos ajudam a organizar nosso sistema de arquivos de uma maneira muito mais flexível. Basicamente, os hardlinks nos permitem pegar um arquivo e ter vários locais no sistema de arquivos ao mesmo tempo. Pense em um cenário em que você é fotógrafo e tem muitas fotos (este é um exemplo da minha vida!). Você pode organizá-los pelas pessoas que aparecem neles, porque às vezes as pessoas pedem fotos delas. Mas você também pode organizá-los por local e data. Não há uma maneira real de aninhar essas três coisas, elas são eixos de organização totalmente separados. Assim, você pode criar três hierarquias diferentes para essas três coisas diferentes e ter cada foto presente nas três, semtendo que armazenar cada foto três vezes. Essa é a mágica dos hardlinks. Desvincule links simbólicos, não precisamos nos preocupar com a localização do "arquivo real", porque eles são todos os arquivos reais. Podemos excluir e mover à vontade, porque o arquivo será retido até que não haja mais referências a ele e removido quando você excluir o último hardlink. É simples e não exige que você acompanhe muito.
fonte
gzip
,gunzip
ezcat
.O conteúdo de um arquivo não será removido até que todos os links físicos (sim, todos os nomes de arquivos sejam links físicos, até o primeiro) tenham sido apagados e o arquivo fechado. Como tal, pode ser útil quando um arquivo é necessário em vários locais, mas pode ser removido de qualquer um a qualquer momento, por exemplo, entre
~/Downloads/coolsong.mp3
e~/Music/Cool Song.mp3
.fonte
Uma vantagem não muito importante de um link físico sobre um link simbólico é que, quando atinge o inode para um link físico, o kernel não tem mais nenhum processamento para acessar o arquivo. Quando encontra um link simbólico, o kernel deve ler o valor do link e continuar percorrendo a estrutura de diretórios antes de chegar ao inode do arquivo. Isso leva mais tempo, embora a diferença não seja necessariamente facilmente mensurada. É realmente divertido quando um dos elementos no valor do link simbólico é ele próprio um link simbólico.
fonte
existem várias razões para links físicos
Portanto, uma razão para usar links físicos é possivelmente economizar muito espaço ...
Você pode anexar a qualquer uma das referências e os dados serão inseridos no arquivo compartilhado. Você também pode anexar a um descritor de arquivo enquanto lê pelo outro (por exemplo, com tail -f)
fonte
Muitos dos exemplos dados aqui são válidos, mas funcionariam igualmente bem com links flexíveis (por exemplo, o problema "preciso de um arquivo em vários locais").
Um bom exemplo de onde os links físicos são realmente úteis é o software de backup Dirvish :
O Dirvish cria backups no nível do sistema de arquivos (ou seja, copia arquivos, não cria imagens), copiando arquivos para um sistema de arquivos (backup) separado (como um disco rígido USB). Cada vez que você faz um backup, o dirvish cria uma cópia completa e separada da árvore de diretórios a ser salva.
O truque é que, se o dirvish detectar que já existe uma cópia de backup mais antiga da árvore que você está salvando, reutilizará automaticamente os arquivos que não foram alterados, criando um link físico na nova árvore para o arquivo na árvore antiga.
Dessa forma, cada cópia de backup é uma cópia completa e independente da árvore de diretórios, mas, ao mesmo tempo, apenas os arquivos alterados ocupam espaço no sistema de arquivos. Em outras palavras, você obtém os benefícios de backups incrementais (economia de espaço) e backups completos (recuperação fácil) ao mesmo tempo.
Isso só é possível porque os links físicos são completamente transparentes às ferramentas do espaço do usuário.
Provavelmente, isso também funcionaria com links simbólicos (embora você tenha problemas ao fazer backup de dados que usam os links simbólicos), mas uma vantagem possível apenas com links físicos é:
Se você quiser jogar fora os backups antigos, basta excluir a árvore de diretórios de backup correspondente. Os arquivos vinculados somente a essa árvore são excluídos automaticamente pelo sistema de arquivos (porque seu último vínculo físico é excluído), mas os arquivos que também aparecem em outras cópias permanecem no disco.
fonte
Um caso útil é, digamos, quando você tem um programa (ou script) que precisa baixar um tarball temporário grande e após extraí-lo, seu programa o excluirá imediatamente.
Se, por algum motivo, você quiser preservar esse tarball para uso futuro, é a melhor maneira de fazê-lo
ln /tmp/tarball.tgz ~
enquanto o tarball ainda está sendo baixado. Então você não precisa fazer nada.Quando o download terminar, e mesmo após o programa ter excluído o 'original', a cópia exata ainda deverá estar no diretório inicial.
fonte
Uso 'Hard Links' para fazer backup de alguns dos meus 'HowTos' e Snippets
Eu tenho um diretório chamado 'Documentos compartilhados' no meu usuário / raiz. Nesse diretório, tenho 'links físicos' para minhas dicas, truques, trechos, instruções que estão nos diretórios apropriados; php, mysql, css, regex, fórmulas, linux, etc., tê-los em 'um só lugar' facilita muito o uso, atualize-os do que ter que pular nos meus documentos / diretórios procurando esses documentos que uso com freqüência.
Há muito tempo, usei links simbólicos. Eu faria fielmente o backup desse diretório comum 'Documentos compartilhados' no meu servidor. O problema é que links simbólicos ou 'Soft Links', se copiados (cp-auv) ou tar'ed e copiados, APENAS faça backup ou copie o 'link' e NÃO o conteúdo do documento. Então, eu teria que percorrer os diretórios e copiar cada uma das duas dúzias de arquivos de sua localização real.
Com o HARD LINKS, eu posso copiar, tar, sincronizar o diretório 'Shared Docs' e fazer backup desses documentos amplamente dispersos com confiança; o conteúdo é realmente copiado. É realmente péssimo para mim, quando percebi que estava fazendo o backup de 0 arquivos de link e não da informação.
A desvantagem de usar 'Hard Links' é que fazer ls em um diretório não fornece uma indicação de que um arquivo está 'vinculado' a outro arquivo ou onde esse arquivo pode coexistir. Existem maneiras de encontrá-los, mas estou dizendo que não é óbvio com um simples ls -l -> aponta para ... Então, geralmente adiciono uma nota no início do documento indicando qual diretório / arquivos 'esse arquivo 'é' compartilhado 'com
Landis.
fonte