Ativar modo que diferencia maiúsculas de minúsculas para pastas no Windows 10
Como você já deve saber, o sistema de arquivos do Windows, NTFS, trata os nomes de arquivos e pastas como indiferentes a maiúsculas e minúsculas. Por exemplo, para o sistema operacional e aplicativos, MyFile.txt e myfile.txt são o mesmo arquivo. No entanto, as coisas são diferentes no Linux. Para este sistema operacional, são dois arquivos diferentes. Essa diferença de comportamento pode criar problemas para usuários WSL. Para resolvê-los, o Windows 10 inclui a capacidade de habilitar o modo de diferenciação de maiúsculas e minúsculas para pastas.
Propaganda
Se você usou o Subsistema Windows para Linux, você provavelmente está ciente de que ele permite que você trate seus sistemas de arquivos do Windows (montados em / mnt / c, / mnt / d, etc.) como diferenciando maiúsculas de minúsculas. Isso significa, entre outras coisas, que você pode criar arquivos cujos nomes diferem apenas por maiúsculas e minúsculas (por exemplo, foo.txt e FOO.TXT).
No entanto, usar esses arquivos no Windows não era realmente possível. Como os aplicativos do Windows tratam o sistema de arquivos como não diferenciando maiúsculas de minúsculas, eles não podem distinguir entre arquivos cujos nomes diferem apenas em maiúsculas e minúsculas. Embora o File Explorer mostre os dois arquivos, apenas um será aberto, independentemente de qual deles você clicou.
Começando com o Windows insider build 17093, há uma nova maneira de lidar com arquivos que diferenciam maiúsculas de minúsculas no Windows: diferenciação de maiúsculas e minúsculas por diretório. Essa capacidade foi adicionada para fornecer ao usuário melhor interoperabilidade ao usar arquivos com distinção entre maiúsculas e minúsculas. Além disso, você pode usá-lo com aplicativos normais do Windows. A partir do Windows 10 Build 17110, esse comportamento é o padrão.
Mais detalhes
Sensibilidade a maiúsculas e minúsculas no Windows
A família de sistemas operacionais Windows NT (incluindo o Windows 10) sempre teve a capacidade de executar operações de sistema de arquivos com distinção entre maiúsculas e minúsculas. Os aplicativos podem passar no FILE_FLAG_POSIX_SEMANTICS
bandeira para o CreateFile
API para indicar que desejam que o caminho seja tratado com distinção entre maiúsculas e minúsculas. No entanto, por motivos de compatibilidade, há uma chave de registro global que substitui esse comportamento; quando esta chave é definida, todas as operações de arquivo não diferenciam maiúsculas de minúsculas, mesmo quando o FILE_FLAG_POSIX_SEMANTICS
sinalizador é especificado. Desde o Windows XP, este tem sido o padrão.
O subsistema do Windows para Linux usa outro mecanismo, que por si só ignora essa chave de registro, permitindo-nos realizar operações do sistema de arquivos com distinção entre maiúsculas e minúsculas. Isso é o que permite que os aplicativos Linux executados em WSL usem nomes de arquivos que diferem apenas por caso, assim como no Linux real, mesmo com aquele conjunto de chaves de registro global.
Infelizmente, isso deixa você com arquivos que não podem ser acessados por aplicativos do Windows. Embora você possa alterar a chave de registro global, isso ainda funcionaria apenas para os aplicativos que usam FILE_FLAG_POSIX_SEMANTICS
, e isso mudaria o comportamento de todos os arquivos em todas as unidades, o que pode não ser pretendido e pode interromper alguns aplicativos.
Sensibilidade a maiúsculas por diretório
Para resolver esse problema, a Microsoft adicionou um novo sinalizador com distinção entre maiúsculas e minúsculas que pode ser aplicado a diretórios. Para diretórios que têm este sinalizador definido, todas as operações em arquivos nesse diretório diferenciam maiúsculas de minúsculas, independentemente de FILE_FLAG_POSIX_SEMANTICS
foi especificado. Isso significa que, se você tiver dois arquivos que diferem apenas por maiúsculas e minúsculas em um diretório marcado como sensível a maiúsculas e minúsculas, todos os aplicativos poderão acessá-los.
Ativar modo que diferencia maiúsculas de minúsculas para pastas
Para habilitar ou desabilitar esse recurso, você deve usar o aplicativo integrado fsutil.exe.
Para ativar o modo de diferenciação de maiúsculas e minúsculas para pastas, faça o seguinte.
- Abrir um prompt de comando elevado.
- Digite o seguinte comando:
arquivo fsutil.exe setCaseSensitiveInfo "caminho completo para sua pasta" habilitar
Substitua a parte do caminho pelo caminho correto correspondente ao seu PC.
Por exemplo,arquivo fsutil.exe setCaseSensitiveInfo "C: \ data \ Winaero \ Linux" habilitar
- Você terminou.
Agora, você pode criar dois arquivos com o mesmo nome e com apenas uma diferença de maiúsculas e minúsculas. O Windows 10 irá processá-los corretamente nesta pasta específica.
Para ver o status do recurso de uma pasta, execute o comando
arquivo fsutil.exe queryCaseSensitiveInfo "caminho completo para sua pasta"
Por exemplo,
arquivo fsutil.exe queryCaseSensitiveInfo "C: \ data \ Winaero \ Linux"
Você verá algo assim:
Finalmente, para desativar o modo de diferenciação de maiúsculas e minúsculas para pastas, execute o próximo comando no prompt de comando aberto como Administrador:
arquivo fsutil.exe setCaseSensitiveInfo "C: \ data \ Winaero \ Linux" desabilitado
Use o caminho da pasta correto e pronto.
Observação: A desativação do atributo CaseSensitiveInfo para pastas não vazias não é suportada. Você deve remover todos os arquivos da pasta antes de desativá-la.
É isso.