O que acontece quando você apaga um link físico?

53

Se você usa rm myFile , onde myFile é um link físico, o que acontece?

    
por trusktr 08.10.2012 / 06:26

2 respostas

98

No Unix, todos os arquivos normais são Hardlinks. Hardlinks em sistemas de arquivos Unix (e a maioria (todos?)) São referências a um chamado " inode ". O inode tem um contador de referência, quando você tem um "link" para o arquivo (que é o modus operandi normal), o contador é 1. Quando você cria um segundo, terceiro, quarto, etc, o contador é incrementado ( aumentada) a cada vez por um. Quando você exclui ( rm ) um link, o contador é diminuído (reduzido) em um. Se o contador de links atingir 0, o sistema de arquivos removerá o inode e marcará o espaço como disponível para uso.

Em resumo, contanto que você não exclua o último link, o arquivo permanecerá.

Edit: O arquivo permanecerá mesmo se o último link for removido . Essa é uma das formas de garantir que a segurança dos dados contidos em um arquivo não seja acessível a nenhum outro processo. Remover os dados do sistema de arquivos completamente é feito somente se os dados tiverem 0 links para ele, conforme fornecidos em seus metadados e não estiverem sendo usados por nenhum processo.

Este IMHO é de longe a maneira mais fácil de entender hard-links (e sua diferença de softlinks).

    
por 08.10.2012 / 07:18
11

O teste foi mais fácil do que eu pensava: criei um arquivo de texto e, em seguida, criei um link para ele. Excluir o link físico não não exclui o arquivo em que ele está com hardlink e o arquivo que estava vinculado permanece onde está.

    
por 08.10.2012 / 07:05