What i don't get is why when you point to a file with a hard link and then you suppress the original file the hardlink still represent the file and the files still exists then ?
Hardlinks são basicamente apenas nomes anexados a um inode, e o nome original que você dá a um novo arquivo também é um hardlink. Então, se você excluir o original, na verdade não estará "suprimindo o arquivo original". Você acabou de excluir o link original.
O syscall "remover arquivo" também é chamado unlink(2)
- consulte Linux ou FreeBSD docs.
A file will always keep existing as long as at least one link still point to it , so because the hardlink is directly connected to the file it will not be deleted and will take the name of the second link.
Como acima. Hardlinks são essencialmente apenas nomes para o arquivo. Então, se tem dois hardlinks (originais e criados adicionalmente), então tem dois nomes.
(Na maioria dos sistemas Unix, arquivos sem links (sem nomes) também podem existir - contanto que um processo mantenha um identificador. É um truque comum usado com arquivos temporários: crie um arquivo grande em / tmp e imediatamente desligue-o.)
But if it's a soft link we just have a text file that show the directory of the wanted file so it have no rapport on the state of the original file
Parece correto.