Administração de Linux
medium

Administração de Linux Question #019e3987

Question Statement
Administração de Linux
#hard-link
#inode
#link-count
#unlink
#directory-entry
Medium

Após criar com sucesso um link físico chamado bar para o arquivo comum foo, foo é excluído do sistema de arquivos. Qual das seguintes opções descreve a situação resultante?

A

foo e bar seriam ambos removidos.

B

foo seria removido, enquanto bar permaneceria acessível.

Correct
C

foo seria removido. bar ainda existiria, mas seria inutilizável.

D

Tanto foo quanto bar permaneceriam acessíveis.

E

O usuário é questionado se bar também deve ser removido.

Official Explanation / Community Explanations

Um link físico é uma entrada de diretório que aponta para o mesmo inode que o arquivo original. Quando foo é excluído, apenas a entrada de diretório para foo é removida; o inode e seus dados permanecem enquanto existir pelo menos um link físico (aqui bar). Portanto, bar permanece totalmente acessível e utilizável.

Como funciona

  • Nos sistemas de arquivos Linux, cada arquivo é representado por um inode que armazena metadados e ponteiros para blocos de dados.
  • Um link físico cria uma entrada de diretório adicional que referencia o mesmo inode. O inode possui uma contagem de links que rastreia o número de entradas de diretório que apontam para ele.
  • Excluir um arquivo (usando rm ou unlink) remove a entrada de diretório e decrementa a contagem de links. O inode e seus dados só são liberados quando a contagem de links chega a zero.
  • Neste cenário, após a criação do link físico bar, o inode para foo tem uma contagem de links de 2. Excluir foo reduz a contagem para 1, de modo que o inode e os dados persistem através de bar.

Por que a resposta correta está certa

  • A afirmação "foo seria removido enquanto bar permaneceria acessível" está correta porque bar ainda referencia o mesmo inode, que permanece intacto.

Por que as respostas incorretas estão erradas

  • "foo e bar seriam ambos removidos" está incorreta porque excluir foo remove apenas uma entrada de diretório; bar ainda existe.
  • "foo seria removido. bar ainda existiria, mas seria inutilizável" está incorreta porque bar é totalmente funcional; links físicos não dependem do nome original.
  • "Tanto foo quanto bar permaneceriam acessíveis" está incorreta porque foo foi excluído e sua entrada de diretório desapareceu.
  • "O usuário é questionado se bar também deve ser removido" está incorreta; nenhum prompt aparece porque o sistema não rastreia relações de links físicos além da contagem de links.