Existe um limite de número de hardlinks para um arquivo? É especificado em algum lugar? Quais são os limites seguros para o Linux? E o que para outros sistemas POSIX?
fonte
Existe um limite de número de hardlinks para um arquivo? É especificado em algum lugar? Quais são os limites seguros para o Linux? E o que para outros sistemas POSIX?
O Posix exige que o sistema operacional entenda o conceito de links físicos, mas não que os links físicos possam realmente ser usados em qualquer circunstância específica. Você pode descobrir quantos links físicos são permitidos em um local específico (isso pode variar de acordo com o tipo de sistema de arquivos) ligando . O limite mínimo ( ) é 8, mas isso não faz sentido, pois pode relatar muitos outros erros de qualquer maneira (permissão negada, disco cheio,…).pathconf(filename, _PC_LINK_MAX)
_POSIX_LINK_MAX
link()
A stat
estrutura armazena a contagem de links em um campo do tipo nlink_t
, portanto, o tipo desse campo fornece um limite superior no seu sistema. Mas há uma boa chance de você nunca chegar tão longe: é comum ter 32 bits, nlink_t
mas apenas 16 bits em muitos sistemas de arquivos (um grep rápido na fonte Linux mostra que ext [234], NTFS, UFS e O XFS usa contagens de links de 16 bits nas estruturas de dados do kernel).
Isso depende do sistema de arquivos.
O limite ext2 / 3/4 é de 65k links
linha de origem ext4 643,
struct ext4_inode
->__le16 i_links_count
fonte
Observando o formato do disco da estrutura do in3 ext3 nas fontes do kernel do linux (* include / linux / ext3_fs.h *) que lista os links contados como sendo um número de 16 bits
Eu acho que isso significa que um sistema de arquivos ext3 pode ter até 65535 links.
Eu não verifiquei os valores para outros sistemas de arquivos.
fonte