Nos sistemas de arquivos unix, todo nome de arquivo é na verdade um vínculo físico com a localização dos dados no disco, chamada de inode. Se você criar um novo link físico para um arquivo existente, não haverá espaço extra no disco, pois é apenas mais um ponteiro para os mesmos dados. Se você editar os dados por um ou outro link (ou editar o inode diretamente), os dois arquivos serão alterados.
O sistema mantém uma contagem de quantos links físicos 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 substituídos. Portanto, dado um arquivo com 2 links físicos, se você excluir um link, 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 dos arquivos usando a -i
opção para o ls
comando
Um link virtual, por outro lado, aponta para outro arquivo por seu nome. Se você mover ou excluir o arquivo original, o link será quebrado.