por que o volume montado do vfat é parcialmente sensível a maiúsculas e minúsculas?

1

Eu tenho uma observação estranha. Eu montei o sistema de arquivos vfat assim:

mount -t vfat -o loop vfat.vol mnt

Eu esperava que fosse insensível a maiúsculas e minúsculas. E é enquanto o comprimento do nome do arquivo não for maior que 8! Não consigo criar dois arquivos diferentes: x1234567 e X1234567, mas posso crie x12345678 e X12345678! É 100% reproduzível com simples echo "abc" > nome do arquivo comando. O que está acontecendo aqui? Como tornar o volume de gordura 100% insensível a maiúsculas e minúsculas?

    
por ardabro 02.04.2015 / 08:24

1 resposta

2

Isso acontece porque os nomes de arquivos com mais de 8 caracteres não são suportados diretamente pelo FAT, mas pela extensão LFN . O FAT é realmente insensível a maiúsculas e minúsculas, é por isso que você não pode criar arquivos x1234567 e X1234567 . No entanto, quando você cria arquivos com nomes longos, são criados nomes de arquivo curtos, além de uma entrada LFN que contém o nome completo.

Assim, quando você cria arquivos x12345678 e X12345678 , esses arquivos recebem nomes curtos como X12345~1 e X12345~2 , que são nomes FAT diferentes e válidos. O Linux tem uma atitude relaxada para verificar a unicidade das entradas do LFN, de modo que você acaba criando duas entradas que são diferenciadas apenas por maiúsculas e minúsculas; algo que o Windows não permitiria. Mas isso é uma limitação (ou melhor, uma característica) do Windows, não do sistema de arquivos FAT.

Sidenote: Aposto que você também pode criar um arquivo chamado CON no linux em um volume FAT.

Veja documentação do vfat para opções de montagem que definem como o Linux deve funcionar com nomes de arquivos. / p>     

por 02.04.2015 / 10:56