O Windows 10 agora oferece um sistema de arquivos opcional com distinção entre maiúsculas e minúsculas, assim como o Linux e outros sistemas operacionais semelhantes ao UNIX. Todos os processos do Windows lidarão com arquivos e pastas com distinção entre maiúsculas e minúsculas se você habilitar este recurso. Em outras palavras, eles verão “arquivo” e “Arquivo” como dois arquivos separados.
Índice
Como isso funciona
Este é um recurso do sistema de arquivos NTFS que você pode habilitar por diretório. Ele não se aplica a todo o sistema de arquivos, portanto, você pode apenas habilitar a diferenciação de maiúsculas e minúsculas para pastas específicas usadas para fins de desenvolvimento.
A diferenciação de maiúsculas e minúsculas foi adicionada na atualização de abril de 2018 do Windows 10 . Antes disso, era possível montar pastas do Windows com distinção entre maiúsculas e minúsculas no ambiente Bash no Windows , também conhecido como Subsistema Windows para Linux. Isso funcionou bem no ambiente Linux, mas confundiu os aplicativos normais do Windows. Este agora é um recurso de nível de sistema de arquivos, o que significa que todos os aplicativos do Windows também verão um sistema de arquivos com distinção entre maiúsculas e minúsculas.
Esse recurso é habilitado por meio do fsutil.exe
comando, que deve ser executado na linha de comando. Você pode fazer isso em um prompt de comando ou janela do PowerShell. Com as configurações padrão, as pastas que você cria no ambiente Linux também são configuradas automaticamente para fazer distinção entre maiúsculas e minúsculas.
Como definir um diretório como sensível a maiúsculas e minúsculas
Para começar, clique com o botão direito do mouse no botão Iniciar e selecione o comando “PowerShell (Administrador)”. Se preferir usar o Prompt de Comando, você pode pesquisar “Prompt de Comando” no menu Iniciar, clicar com o botão direito do mouse e selecionar o comando “Executar como Administrador”. O comando funciona da mesma forma, não importa o ambiente de linha de comando que você escolher.
Você pode não precisar de acesso de administrador para executar este comando, dependendo de suas permissões. Tecnicamente, você precisa da permissão “escrever atributos” para o diretório que deseja modificar. Na maioria dos casos, isso significa que você precisará de permissões de administrador se quiser editar uma pasta em algum lugar fora de sua pasta de usuário – como c: \ projeto – e não se quiser modificar uma pasta em algum lugar dentro de sua pasta de usuário – como como em c: \ users \ NAME \ project.
Antes de continuar, certifique-se de que nenhum software Linux em execução esteja fazendo referência ao diretório que você está prestes a modificar. Você não deve alterar o sinalizador de distinção entre maiúsculas e minúsculas em uma pasta enquanto o software Linux a estiver acessando. Se qualquer processo do Linux em execução tiver o diretório ou qualquer coisa dentro do diretório aberto, mesmo como seu diretório de trabalho atual, os aplicativos Linux não reconhecerão a mudança e podem ocorrer problemas.
Para diferenciar maiúsculas de minúsculas em uma pasta, digite o seguinte comando, substituindo “C: \ pasta” pelo caminho para a pasta:
arquivo fsutil.exe setCaseSensitiveInfo C: \ pasta habilitada
Se o caminho da pasta contiver um espaço, coloque todo o caminho entre aspas, assim:
arquivo fsutil.exe setCaseSensitiveInfo "C: \ minha pasta" habilitar
Isso não afeta as subpastas
O sinalizador de distinção entre maiúsculas e minúsculas afeta apenas a pasta específica à qual você o aplica. Ele não é herdado automaticamente pelas subpastas dessa pasta.
Em outras palavras, se você tiver uma pasta chamada C: \ folder e ela contiver as subpastas C: \ folder \ test e C: \ folder \ stuff dentro dela, simplesmente diferenciar maiúsculas de minúsculas na pasta C: \ também não tornaria o As subpastas “test” e “stuff” dentro dele diferenciam maiúsculas de minúsculas. Você precisaria executar o fsutil
comando apropriado separadamente para tornar todas as três pastas sensíveis a maiúsculas e minúsculas.
Ferramentas Linux criam pastas que diferenciam maiúsculas de minúsculas por padrão
As ferramentas do Linux que você executa dentro do subsistema Windows para Linux (shell Bash) agora criam pastas com o sinalizador que diferencia maiúsculas de minúsculas definido. Portanto, quer você use o mkdir
comando para criar um diretório dentro de um shell Bash ou uma ferramenta de desenvolvimento faça isso por você, o diretório criado é automaticamente definido como diferencia maiúsculas de minúsculas – mesmo se você criá-lo em seu sistema de arquivos Windows montado.
Tecnicamente, isso ocorre porque o sistema de arquivos DrvFs para o ambiente Linux usa o case=dir
sinalizador por padrão . A case=dir
opção configura o ambiente Linux para respeitar o sinalizador NTFS de cada diretório e para definir automaticamente o sinalizador de distinção entre maiúsculas e minúsculas nos diretórios criados a partir do ambiente Linux. Você pode alterar esta opção em seu arquivo wsl.conf , se desejar.
Contanto que você crie pastas no ambiente Linux, elas são criadas com as configurações adequadas de distinção entre maiúsculas e minúsculas e você nunca precisa tocar no comando fsutil.exe.
Como verificar se um diretório diferencia maiúsculas de minúsculas
Para verificar se um diretório atualmente diferencia maiúsculas de minúsculas, execute o seguinte comando, substituindo “C: \ pasta” pelo caminho para a pasta.
arquivo fsutil.exe queryCaseSensitiveInfo C: \ folder
Se a diferenciação de maiúsculas e minúsculas estiver habilitada para um diretório, você verá que o “Atributo de diferenciação de maiúsculas e minúsculas no diretório [caminho] está habilitado.” Se o diretório estiver usando a não diferenciação de maiúsculas e minúsculas padrão do Windows, você verá que o “Atributo que diferencia maiúsculas de minúsculas no diretório [caminho] está desativado”.
Como fazer um diretório insensível a maiúsculas e minúsculas
Para desfazer sua alteração e tornar um diretório insensível a maiúsculas e minúsculas novamente (como Bill Gates pretendia), execute o seguinte comando, substituindo “C: \ pasta” pelo caminho para a pasta.
arquivo fsutil.exe setCaseSensitiveInfo C: \ pasta desativada
Se você tentar desativar a diferenciação de maiúsculas e minúsculas para uma pasta que contém arquivos com nomes que entrariam em conflito, você verá uma mensagem “Erro: O diretório não está vazio”. Você precisará remover ou renomear os arquivos conflitantes antes de continuar.