Hoofdlettergevoelige modus inschakelen voor mappen in Windows 10
Zoals u wellicht al weet, behandelt het Windows-bestandssysteem, NTFS, bestands- en mapnamen als hoofdletterongevoelig. Voor het besturingssysteem en de apps zijn MyFile.txt en myfile.txt bijvoorbeeld hetzelfde bestand. Echter, de dingen zijn anders in Linux. Voor dit besturingssysteem zijn dit twee verschillende bestanden. Dit verschil in gedrag kan problemen veroorzaken voor WSL-gebruikers. Om ze op te lossen, biedt Windows 10 de mogelijkheid om de hoofdlettergevoelige modus voor mappen in te schakelen.
Als je de hebt gebruikt Windows-subsysteem voor Linux, weet u waarschijnlijk dat u hiermee uw Windows-bestandssystemen (aangekoppeld onder /mnt/c, /mnt/d, enz.) als hoofdlettergevoelig kunt behandelen. Dit betekent onder andere dat u bestanden kunt maken waarvan de namen alleen per hoofdletter verschillen (bijv. foo.txt en FOO.TXT).
Het was echter niet echt mogelijk om die bestanden in Windows te gebruiken. Aangezien Windows-toepassingen het bestandssysteem als hoofdletterongevoelig behandelen, kunnen ze geen onderscheid maken tussen bestanden waarvan de namen alleen in hoofdletters verschillen. Hoewel File Explorer beide bestanden zou tonen, zou er maar één worden geopend, ongeacht op welke u hebt geklikt.
Beginnend met Windows insider build 17093, is er een nieuwe manier om hoofdlettergevoelige bestanden in Windows te verwerken: hoofdlettergevoeligheid per map. Deze mogelijkheid is toegevoegd om de gebruiker een betere interoperabiliteit te bieden bij het gebruik van hoofdlettergevoelige bestanden. U kunt het ook gebruiken met reguliere Windows-applicaties. Vanaf Windows 10 Build 17110 is dit gedrag de standaardinstelling.
Meer details
Hoofdlettergevoeligheid in Windows
De Windows NT-familie van besturingssystemen (inclusief Windows 10) heeft altijd de mogelijkheid gehad om hoofdlettergevoelige bestandssysteembewerkingen uit te voeren. Toepassingen kunnen passeren de FILE_FLAG_POSIX_SEMANTICS
vlag naar de Bestand maken
API om aan te geven dat ze willen dat het pad als hoofdlettergevoelig wordt behandeld. Om compatibiliteitsredenen is er echter een algemene registersleutel die dit gedrag overschrijft; als deze sleutel is ingesteld, zijn alle bestandsbewerkingen hoofdletterongevoelig, zelfs als de FILE_FLAG_POSIX_SEMANTICS
vlag is opgegeven. Sinds Windows XP is dit de standaard.
Het Windows-subsysteem voor Linux gebruikt een ander mechanisme, dat zelf die registersleutel omzeilt, waardoor we hoofdlettergevoelige bestandssysteembewerkingen kunnen uitvoeren. Hierdoor kunnen Linux-applicaties die in WSL worden uitgevoerd, bestandsnamen gebruiken die alleen per geval verschillen, net zoals op echte Linux, zelfs met die globale registersleutelset.
Helaas blijft u hierdoor achter met bestanden die niet toegankelijk zijn voor Windows-toepassingen. Hoewel je de globale registersleutel zou kunnen veranderen, zou dat nog steeds alleen werken voor die applicaties die gebruik maken van FILE_FLAG_POSIX_SEMANTICS
, en dit zou het gedrag voor alle bestanden op alle schijven veranderen, wat misschien niet de bedoeling is en sommige toepassingen kan breken.
Hoofdlettergevoeligheid per map
Om dit probleem op te lossen, heeft Microsoft een nieuwe hoofdlettergevoelige vlag toegevoegd die op mappen kan worden toegepast. Voor mappen die deze vlag hebben, zijn alle bewerkingen op bestanden in die map hoofdlettergevoelig, ongeacht of: FILE_FLAG_POSIX_SEMANTICS
werd opgegeven. Dit betekent dat als u twee bestanden hebt die alleen per hoofdletter van elkaar verschillen in een map die als hoofdlettergevoelig is gemarkeerd, alle toepassingen er toegang toe hebben.
Hoofdlettergevoelige modus inschakelen voor mappen
Om deze functie in of uit te schakelen, moet u de ingebouwde app fsutil.exe gebruiken.
Hoofdlettergevoelige modus inschakelen voor mappen, doe het volgende.
- Open een verhoogde opdrachtprompt.
- Typ de volgende opdracht:
fsutil.exe bestand setCaseSensitiveInfo "volledig pad naar uw map" inschakelen
Vervang het padgedeelte door het juiste pad dat overeenkomt met uw pc.
Bijvoorbeeld,fsutil.exe-bestand setCaseSensitiveInfo "C:\data\Winaero\Linux" inschakelen
- Je bent klaar.
Nu kunt u twee bestanden maken met dezelfde naam en met slechts een verschil in hoofdletters. Windows 10 zal ze correct verwerken in deze specifieke map.
Voer de opdracht. uit om de functiestatus van een map te zien
fsutil.exe bestand queryCaseSensitiveInfo "volledig pad naar uw map"
Bijvoorbeeld,
fsutil.exe bestand queryCaseSensitiveInfo "C:\data\Winaero\Linux"
Je ziet zoiets als dit:
Eindelijk, hoofdlettergevoelige modus voor mappen uitschakelen, voer de volgende opdracht uit in de opdrachtprompt die is geopend als beheerder:
fsutil.exe bestand setCaseSensitiveInfo "C:\data\Winaero\Linux" uitschakelen
Gebruik het juiste mappad en je bent klaar.
Opmerking: Het uitschakelen van het kenmerk CaseSensitiveInfo voor niet-lege mappen wordt niet ondersteund. U moet alle bestanden uit de map verwijderen voordat u deze uitschakelt.
Dat is het.