Essa pergunta me ocorreu outro dia, quando eu estava trabalhando em um projeto de desenvolvimento que se baseia em uma estrutura opinativa em relação aos nomes de arquivos. A estrutura (irrelevante aqui) queria ver o primeiro nome de arquivo em maiúsculas. Isso me fez pensar.
Em um sistema de arquivos que não diferencia maiúsculas de minúsculas, diga extFAT ou HFS + (especificamente que não diferenciam maiúsculas de minúsculas) como o sistema de arquivos fornece acesso ao mesmo arquivo com as versões em maiúsculas e minúsculas do nome do arquivo.
Por exemplo:
$ cd ~/Documents
$ pwd
/home/derp/Documents
$ cd ../documents
$ pwd
/home/derp/documents
$ cd ../docuMents
$ pwd
/home/derp/docuMents
$ cd ../DOCUMENTS
$ pwd
/home/derp/DOCUMENTS
$ cd ../documentS
$ pwd
/home/derp/documentS
Todos esses comandos serão resolvidos para o mesmo diretório. Esse comportamento, especificamente a saída de pwd
apenas uma função bash
desse caso, está apenas me mostrando o que ele pensa que eu quero ver?
Outro exemplo:
$ ls ~/Documents
Derp.txt another.txt whatThe.WORLD
O sistema de arquivos aqui relata o caso do nome do arquivo original criado pelo usuário ou programa.
Em que ponto da pilha do sistema de arquivos o nome do arquivo legível por humanos é preservado conforme foi criado (por exemplo, maiúsculas e minúsculas) para que possa ser acessado por qualquer combinação dos caracteres ASCII maiúsculos e minúsculos corretos? Isso é apenas um truque de regex em algum lugar ou algo mais está acontecendo?
EDIT: Parece que o comportamento que eu estou curioso sobre se encontra em caso de preservação de sistemas de arquivos de maiúsculas e minúsculas depois de mais algumas pesquisas ...