Um sistema de arquivos que não diferencia maiúsculas e minúsculas apenas significa que sempre que o sistema de arquivos tiver que perguntar, "A referencia o mesmo arquivo / diretório que B?" ele compara os nomes de arquivos / diretórios ignorando diferenças em maiúsculas / minúsculas (exatamente o que a contagem de diferenças entre maiúsculas e minúsculas depende do sistema de arquivos - não é óbvio quando você ultrapassa o ASCII). Um sistema de arquivos com distinção entre maiúsculas e minúsculas não ignora essas diferenças.
Um sistema de arquivos que preserva o caso armazena os nomes dos arquivos como dados. Um sistema de arquivos que não preserva o caso não possui; normalmente, ele converterá todas as letras em letras maiúsculas antes de armazená-las (teoricamente, poderia usar letras minúsculas ou caso do RaNsOm NoTe, ou qualquer outra coisa, mas AFAIK todas as do mundo real usadas em maiúsculas).
Você pode colocar esses dois atributos juntos em qualquer combinação. Não tenho certeza se você pode encontrar sistemas de arquivos que não diferenciam maiúsculas de minúsculas, mas você certamente poderia criar um. Todas as outras combinações existem ou existiam em sistemas reais.
Portanto, um sistema de arquivos que não diferencia maiúsculas de minúsculas (o tipo mais comum de sistema de arquivos que não diferencia maiúsculas e minúsculas) irá armazenar e retornar nomes de arquivos em qualquer capitalização que você os criou ou renomeou, mas ao comparar dois nomes de arquivos verifique se existe algum, para abrir um, para deletar um, etc.) ele irá ignorar diferenças de casos.
Quando você usa um sistema de arquivos que não diferencia maiúsculas de minúsculas em uma caixa Unix, vários utilitários farão coisas estranhas porque o Unix tradicionalmente usa sistemas de arquivos que diferenciam maiúsculas de minúsculas - portanto, eles não esperam que Document1
e document1
sejam o mesmo arquivo.
No caso pwd
, o que você está vendo é que, por padrão, apenas exibe o caminho que você realmente usou para chegar ao diretório. Então, se você chegar lá por meio de cd DirName
, ele usará DirName
na saída. Se você chegou lá via DiRnAmE
, você verá DiRnAmE
na saída. Bash faz isso mantendo um registro de como você chegou ao seu diretório atual na variável de ambiente $PWD
. Principalmente, isso é para links simbólicos (se vocêcd
em um link simbólico, verá o link simbólico em pwd
, mesmo que não faça parte do caminho para seu diretório atual). Mas também dá o comportamento um pouco estranho que você observa em sistemas de arquivos insensíveis a maiúsculas e minúsculas. Eu suspeito que pwd -P
lhe dará o nome do diretório usando o caso armazenado no disco, mas não testei.