Come funziona
Questa è una funzionalità del file system NTFS che è possibile abilitare su una base per directory. Non si applica all'intero file system, pertanto è possibile abilitare la distinzione tra maiuscole e minuscole per cartelle specifiche utilizzate per scopi di sviluppo.
La distinzione tra maiuscole e minuscole è stata aggiunta all'aggiornamento di aprile 2018 di Windows 10. Prima di questo, era possibile montare le cartelle di Windows come case sensitive all'interno dell'ambiente Bash su Windows, noto anche come sottosistema Windows per Linux. Questo ha funzionato bene all'interno dell'ambiente Linux, ma ha confuso le normali applicazioni Windows. Questa è ora una funzionalità a livello di file system, il che significa che tutte le applicazioni Windows vedranno anche un file system sensibile alla distinzione tra maiuscole e minuscole.
Questa funzione è abilitata tramite
fsutil.exe
comando, che è necessario eseguire dalla riga di comando. Puoi farlo dal prompt dei comandi o dalla finestra di PowerShell. Con le impostazioni predefinite, anche le cartelle create all'interno dell'ambiente Linux vengono automaticamente configurate come case sensitive.
Come impostare una directory come maiuscole / minuscole
Per iniziare, fare clic con il pulsante destro del mouse sul pulsante Start, quindi selezionare il comando "PowerShell (Amministratore)". Se si preferisce utilizzare il prompt dei comandi, è possibile cercare "Prompt dei comandi" nel menu Start, fare clic con il pulsante destro del mouse e selezionare il comando "Esegui come amministratore". Il comando funziona allo stesso modo, indipendentemente dall'ambiente della riga di comando che si sceglie.
Potrebbe non essere necessario l'accesso come amministratore per eseguire questo comando, a seconda delle autorizzazioni. Tecnicamente, è necessaria l'autorizzazione "attributi di scrittura" per la directory che si desidera modificare. Nella maggior parte dei casi, ciò significa che avrai bisogno delle autorizzazioni di amministratore se vuoi modificare una cartella da qualche parte al di fuori della tua cartella utente, come c: project, e non se vuoi modificare una cartella da qualche parte all'interno della cartella utente, ad esempio come in c: users NOMEprogetto.
Per rendere una cartella sensibile alle maiuscole, digitare il seguente comando, sostituendo "C: folder" con il percorso della cartella:
fsutil.exe file setCaseSensitiveInfo C:folder enable
Se il percorso della cartella ha uno spazio al suo interno, racchiudi l'intero percorso tra virgolette, in questo modo:
fsutil.exe file setCaseSensitiveInfo 'C:my folder' enable
Questo non influisce sulle sottocartelle
Il flag di maiuscole / minuscole influisce solo sulla cartella specifica a cui viene applicata. Non viene automaticamente ereditato dalle sottocartelle di quella cartella.
In altre parole, se si ha una cartella denominata C: cartella e contiene C: folder test e C: folder stuff sottocartelle, semplicemente rendendo la cartella C: case sensitive non renderebbe anche la cartella "Test" e "stuff" sottocartelle al suo interno sensibili alle maiuscole. Dovresti eseguire l'appropriato
fsutil
comando separatamente per rendere tutte le tre cartelle sensibili alle maiuscole.
Gli strumenti Linux creano cartelle con distinzione tra maiuscole e minuscole per impostazione predefinita
Gli strumenti Linux che esegui all'interno del sottosistema Windows per Linux (shell Bash) ora creano cartelle con il set di flag case case. Quindi, se usi il
mkdir
comando per creare una directory all'interno di una shell Bash o uno strumento di sviluppo lo fa per te, la directory creata viene automaticamente impostata come maiuscole e minuscole, anche se la si crea sul file system Windows montato.
Tecnicamente, ciò si verifica perché il file system DrvFs per l'ambiente Linux utilizza il
case=dir
flag di default. Il
case=dir
opzione imposta l'ambiente Linux per rispettare il flag NTFS di ogni directory e per impostare automaticamente il flag di maiuscole / minuscole nelle directory create all'interno dell'ambiente Linux. Puoi cambiare questa opzione nel tuo file wsl.conf, se vuoi.
Finché si creano cartelle dall'ambiente Linux, vengono create con le corrette impostazioni di maiuscole e minuscole e non è necessario toccare il comando fsutil.exe.
Come verificare se una directory è case sensitive
Per verificare se una directory è correntemente sensibile al maiuscolo / minuscolo, eseguire il comando seguente, sostituendo "C: folder" con il percorso della cartella.
fsutil.exe file queryCaseSensitiveInfo C:folder
Se la distinzione tra maiuscole e minuscole è abilitata per una directory, vedrai che l'attributo "Maiuscole / minuscole nella directory [percorso] è abilitato." Se la directory utilizza l'insensibilità di maiuscole / minuscole di Windows standard, vedrai che l'attributo "Caso sensibile" su directory [percorso] è disabilitato."
Come rendere insensibile la distinzione tra maiuscole e minuscole
Per annullare la modifica e rendere nuovamente insensibile la distinzione tra maiuscole e minuscole (come previsto da Bill Gates), eseguire il comando seguente, sostituendo "C: folder" con il percorso della cartella.
fsutil.exe file setCaseSensitiveInfo C:folder disable