Como criar hard links Linux?

How Create Hard Links Linux



A vinculação é um recurso interessante no Linux. Em sistemas operacionais semelhantes ao UNIX, tudo é um arquivo. Um arquivo é fundamentalmente um link para um inode, um tipo especial de estrutura de dados que armazena tudo sobre um determinado arquivo, exceto seu nome original e conteúdo real. Esse é o recurso que os links aproveitam. Criar um link é criar outro arquivo que aponta para o mesmo inode subjacente de outro arquivo. Em muitas situações, é um método extremamente útil.

Veja como criar links físicos no Linux.







Links físicos no Linux

Antes de mergulhar mais fundo, vamos falar um pouco sobre links físicos e flexíveis. Existem algumas diferenças fundamentais entre eles. No caso de um link físico, ele só pode existir no mesmo sistema de arquivos, enquanto o link simbólico persistirá em sistemas de arquivos cruzados. Além disso, só pode ser executado em arquivos regulares. Você também não pode criar links físicos de diretório, por isso não cria um loop de diretório.



Se um arquivo do link físico for excluído, ele remove o link do inode subjacente.



O comando ls pode imprimir o inode de um arquivo / diretório de destino.





$ls -no <file_or_dir>

Criação de links físicos

Gerar um link físico é bastante simples. Para criar links, ln é a ferramenta dedicada disponível em quase todas as distros Linux.



Use a seguinte estrutura de comando para criar um link físico. Observe que o destino deve estar no mesmo sistema de arquivos. O sinalizador -v é para o modo detalhado.

$em -v <fonte> <ligação>


Verifique o resultado.

$ls -no <alvo>


Quanto ao hard linking de diretório, não é permitido. Hipoteticamente, ainda é possível criar, mas a maioria das distros Linux desabilita esse recurso, mesmo se você executar a ação com privilégio de root. Para vinculação de diretório, use links simbólicos.

Links macios

O soft linking é comumente referido como links simbólicos. A vinculação suave pode ser um sistema de arquivos cruzado. Por definição, não é um arquivo padrão, mas sim um arquivo que aponta para um arquivo existente. Aqui, o arquivo de link simbólico terá um valor de inode diferente, mas aponta para o arquivo original.

Assim como na criação de links físicos, usaremos a ferramenta ln. Para declarar a criação de um link simbólico, adicione o sinalizador -s.

$em -vs <fonte> <destino>


Verifique o resultado.

$ls -no <alvo>

Se já houver um link existente, você pode atualizá-lo usando o sinalizador -f que força o ln a atualizar o link sem qualquer confirmação. Alternativamente, você pode usar o sinalizador -i para a criação de link interativo.

$em -sf <fonte> <destino>


Não se esqueça de verificar o resultado.

$ls -no <alvo>

Localizando links

Supondo que haja vários links para o mesmo arquivo, pode se tornar difícil controlá-los. Em tal situação, use este método para descobrir todos os links.

Para isso, precisamos do valor inode do arquivo original. Use o seguinte comando para descobrir o número do inode.

$ls -no <Arquivo de destino>


Agora, use o número do inode para descobrir todos os links para esse arquivo. Aqui, o diretório ativo atual deve ser o diretório onde o arquivo original está localizado.

$achar.-inum <inode_value>

Excluindo links

Se você deseja desativar um link físico, a maneira de fazer isso é excluindo o arquivo vinculado.

$rm <ligação>

Pensamentos finais

A vinculação é uma ferramenta poderosa que você pode usar em muitas situações. Embora tenha suas próprias limitações, pode oferecer excelentes benefícios em vários cenários.

Interessado em mais detalhes sobre o comando ln? Veja como usar o comando ln.

Boa computação!