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).