Classifique, mas observe que o tamanho de um arquivo não está bem definido nesse nível de precisão.
Um link simbólico envolve quatro partes:
- O nome do link, que é armazenado no diretório em que é uma entrada.
- Outros metadados presentes em todas as entradas de diretório, para localizar o restante dos metadados. Esta é tipicamente a localização de um inode. Além disso, cada entrada de diretório custa mais alguns bytes, por exemplo, para preencher nomes de arquivos e manter uma estrutura de dados, como uma árvore ou um hash balanceado.
- Outros metadados do próprio link simbólico, como timestamps. Esses metadados também estão presentes para outros tipos de arquivo (por exemplo, um arquivo regular vazio).
- O destino do link.
Se o sistema de arquivos permite que os links simbólicos tenham vários hard links, as duas primeiras partes são por entrada de diretório, as duas últimas partes estão presentes apenas uma vez por link simbólico.
No ext2 / ext3 / ext4 , o alvo de um link simbólico é armazenado no inode se tiver no máximo 60 bytes. Você pode confirmar isso pedindo du
: ele relata 0 para links simbólicos cujo destino é ≤60 bytes e um bloco para alvos maiores.
Assim como em um arquivo normal, a figura relatada por du
exclui o armazenamento da entrada de diretório e do inode. Se você quer saber exatamente quanto espaço o link simbólico leva, você também precisa contá-los. A maioria dos sistemas de arquivos clássicos aloca inodes no momento da criação do sistema de arquivos, de modo que o custo é dividido: o tamanho da entrada de diretório conta o número de blocos de dados, as contagens de inode contra o tamanho do pool de inode.
Para o tamanho da entrada de diretório em si, o número exato de bytes ocupados por uma entrada pode depender de quais outras entradas estão presentes no diretório. No entanto, um diretório geralmente ocupa um grande número de blocos, portanto, se você criar mais e mais entradas, o tamanho do diretório permanecerá o mesmo, até que as entradas não caibam mais em um bloco e um segundo bloco seja alocado, e assim por diante. Para ver exatamente como as entradas de diretório são armazenadas no bloco, você precisaria de um depurador de sistema de arquivos e uma compreensão razoável do formato do sistema de arquivos ou de um bom a excelente entendimento do formato do sistema de arquivos, bem como o conhecimento de quais outras entradas estão presentes no diretório e possivelmente na ordem em que foram criados e outras entradas foram removidas.
Em resumo, os "poucos bytes para outros metadados" são:
- A entrada de diretório, de tamanho variável. Criar o link simbólico pode não fazer diferença ou adicionar um bloco.
- O inode.
E o alvo pode ocupar de 0 a um bloco além disso.