Come abilitare i nomi di file e cartelle case sensitive su Windows 10
Windows 10 ora offre un file system opzionale con distinzione tra maiuscole e minuscole, proprio come Linux e altri sistemi operativi simili a UNIX. Tutti i processi Windows gestiranno correttamente i file e le cartelle con distinzione tra maiuscole e minuscole se si attiva questa funzione. In altre parole, vedranno "file" e "File" come due file separati.
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 che crei 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 di permessi di amministratore se vuoi modificare una cartella da qualche parte al di fuori della 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 \NOME\progetto.
Prima di continuare, assicurati che nessun software Linux in esecuzione stia facendo riferimento alla directory che stai per modificare. Non dovresti cambiare il flag di maiuscole / minuscole su una cartella mentre il software Linux sta accedendo ad essa. Se alcuni processi Linux in esecuzione hanno attualmente la directory o qualcosa all'interno della directory aperta, anche come directory di lavoro corrente, le applicazioni Linux non riconosceranno il cambiamento e potrebbero verificarsi problemi.
Per rendere una cartella sensibile alle maiuscole, digitare il seguente comando, sostituendo "C: \ folder" con il percorso della cartella:
file fsutil.exe setCaseSensitiveInfo C: \ abilitazione cartella
Se il percorso della cartella ha uno spazio al suo interno, racchiudi l'intero percorso tra virgolette, in questo modo:
file fsutil.exe setCaseSensitiveInfo Abilita "C: \ my folder"
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. Avresti bisogno di 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 si eseguono all'interno del sottosistema Windows per Linux (shell Bash) ora creano cartelle con il flag set case sensitive. 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 crei sul tuo file system Windows montato.
Tecnicamente, ciò si verifica perché il file system DrvFs per l'ambiente Linux utilizza il caso = dir
flag di default. Il caso = 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 è maiuscole / minuscole
Per verificare se una directory è correntemente sensibile al maiuscolo / minuscolo, eseguire il comando seguente, sostituendo "C: \ folder" con il percorso della cartella.
file fsutil.exe queryCaseSensitiveInfo C: \ cartella
Se la distinzione tra maiuscole e minuscole è abilitata per una directory, vedrai che l'attributo "Maiuscole / minuscole sulla directory [percorso] è abilitato." Se la directory utilizza l'insensibilità di maiuscole / minuscole di Windows standard, vedrai che l'attributo "Maiuscole / minuscole" 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.
file fsutil.exe setCaseSensitiveInfo C: \ cartella disabilitata
Se si tenta di disabilitare la distinzione tra maiuscole e minuscole per una cartella contenente file con nomi che si scontrano, verrà visualizzato il messaggio "Errore: la directory non è vuota". Dovrai rimuovere o rinominare i file in conflitto prima di continuare.