Crie links físicos e virtuais - Preparação para o exame RHCSA
Nesta parte da preparação para o exame RHCSA voltaremos nossa atenção para os links. Existem dois tipos de link, links físicos e links virtuais. Neste artigo falaremos sobre como criar e remover links e também discutiremos alguns antecedentes básicos por trás de ambos, os links físicos e os links virtuais.
Neste tutorial você aprenderá:
O que são links simbólicos (soft)
O que são links físicos
Como criar um link simbólico
-
Como criar um link físico
Como remover link
Página de manual do comando ln
O que são links em sistemas GNU/Linux
Cada arquivo possui informações sobre sua data de criação, modificação, acesso, bem como propriedade do arquivo e suas permissões armazenadas em um chamado inode. Além dos metadados armazenados já mencionados, o inode também armazena informações sobre um bloco de dados onde o conteúdo real do arquivo é armazenado no sistema de arquivos.
Portanto, a principal função do inode é descrever um objeto do sistema de arquivos, como um arquivo ou diretório. Para acessar o objeto do sistema de arquivos associado a um inode específico, precisamos fornecer ao usuário um hard link que é o nome real do arquivo ou diretório.
Isso explica o primeiro tipo de links que são hard links. O segundo tipo de links no sistema operacional GNU/Linux são links simbólicos, também conhecidos como soft links. A diferença entre links físicos e simbólicos é que os links simbólicos apontam apenas para links físicos, ou seja, apontam para nomes de arquivos ou diretórios existentes. Resumindo, os links permitem ao usuário acessar arquivos ou diretórios por meio de vários nomes.
Links físicos
Como os hard links estão associados aos inodes que, por sua vez, são um recurso do sistema de arquivos, os hard links não podem cruzar sistemas de arquivos e, portanto, são válidos apenas dentro do mesmo sistema de arquivos. . Além disso, não é possível criar links físicos em diretórios. Qualquer tentativa de criar um link físico a partir de um diretório resultará na mensagem de erro hard link not enabled for directory
.
Vamos criar alguns links físicos. Neste exemplo, primeiro criaremos um arquivo arbitrário chamado sandbox
contendo um texto linuxconfig.org
. Quando estiver pronto, criaremos vários hard links para este arquivo apontando de diferentes locais.
Crie um arquivo chamado
sandbox
contendo um textoRHCSA
dentro de um diretório inicial do usuário~/
.$ echo "RHCSA" > ~/sandbox
Verifique o conteúdo do arquivo usando o comando
cat
:$ cat ~/sandbox RHCSA
Ainda localizado dentro de um diretório inicial do usuário, crie um link físico para o arquivo
sandbox
do diretório/tmp/
chamadohardlink1
.$ ln sandbox /tmp/hardlink1
Agora verifique o conteúdo do hard link recém-criado
/tmp/hardlink1
. O conteúdo do arquivo/tmp/hardlink1
e do arquivosandbox
original deve ser o mesmo:$ cat /tmp/hardlink1 RHCSA
Verifique as informações do link associadas aos nomes de arquivo
sandbox
e/tmp/hardlink1
.$ ls -l /tmp/hardlink1 -rw-rw-r--. 2 linuxconfig linuxconfig 6 Jul 25 10:20 /tmp/hardlink1 $ ls -l ~/sandbox -rw-rw-r--. 2 linuxconfig linuxconfig 6 Jul 25 10:20 /home/linuxconfig/sandbox
Observe o número associado
2
conforme mostrado na saída acima. Este número indica o número de links físicos associados a um inode específico.NOTA
Neste estágio, é importante entender que não há diferença real entre osandbox
original e o/tmp/hardlink1
recém-criado. código> arquivo. Ambos apontam para o mesmo inode usando nomes de arquivos diferentes.Remova o link físico usando o comando
unlink
ourm
.
$ unlink sandbox
$ ls -l /tmp/hardlink1
-rw-rw-r--. 1 linuxconfig linuxconfig 6 Jul 25 10:20 /tmp/hardlink1
Nesse caso, ambos os comandos rm
ou unlink
removerão um link físico, mas não os dados e o inode reais associados. Como o link físico sandbox
foi removido, resta apenas 1
link físico associado ao inode original. A seguir, removeremos o último link físico associado a este arquivo:
$ rm /tmp/hardlink1
Neste ponto, o link para o inode que aponta para o conteúdo do nosso arquivo original é perdido, portanto consideramos este arquivo como removido. Se não houver links físicos apontando para um inode, o sistema de arquivos poderá agora substituir o local deste inode por novos dados.
$ touch file
$ unlink file
Se você entendeu os comandos acima, então você dominou os hard links do GNU/Linux conforme explicado neste tutorial.