Em sistemas de arquivos unix, cada nome de arquivo é, na verdade, um link rígido para a localização dos dados no disco, chamado de inode. Se você criar um novo link físico para um arquivo existente, ele não ocupará espaço extra no disco, pois é apenas outro ponteiro para os mesmos dados. Se você editar os dados por um ou outro link (ou editar o inode diretamente) ambos os arquivos serão alterados.
O sistema mantém uma contagem de quantos links rígidos cada inode possui. Quando a contagem de links é 0, o arquivo não pode mais ser alcançado e os dados são marcados como seguros para serem sobrescritos. Assim, dado um arquivo com 2 links físicos, se você excluir um dos links, os dados não serão excluídos. Somente se você excluir os dois, os dados desaparecerão.
Você pode ver os números de inode de arquivos usando a opção -i
para o comando ls
.
Um link, por outro lado, aponta para outro arquivo pelo nome do arquivo. Se você mover ou excluir o arquivo original, o link será quebrado.