Aktivera skiftlägeskänsligt läge för mappar i Windows 10
Som du kanske redan vet, behandlar Windows filsystem, NTFS, fil- och mappnamn som skiftlägesokänsliga. Till exempel, för OS och appar är MyFile.txt och myfile.txt samma fil. Men saker och ting är annorlunda i Linux. För detta operativsystem är det två olika filer. Denna skillnad i beteende kan skapa problem för WSL-användare. För att lösa dem innehåller Windows 10 möjligheten att aktivera skiftlägeskänsligt läge för mappar.
Annons
Om du har använt Windows undersystem för Linux, du är förmodligen medveten om att det låter dig behandla dina Windows-filsystem (monterade under /mnt/c, /mnt/d, etc.) som skiftlägeskänsliga. Detta innebär bland annat att du kan skapa filer vars namn bara skiljer sig från fall till fall (t.ex. foo.txt och FOO.TXT).
Det var dock inte riktigt möjligt att använda dessa filer i Windows. Eftersom Windows-program behandlar filsystemet som skiftlägesokänsligt, kan de inte skilja mellan filer vars namn endast skiljer sig åt i skiftläge. Medan File Explorer skulle visa båda filerna skulle bara en öppnas oavsett vilken du klickade på.
Från och med Windows insider build 17093 finns det ett nytt sätt att hantera skiftlägeskänsliga filer i Windows: skiftlägeskänslighet per katalog. Denna förmåga har lagts till för att ge användaren bättre interoperabilitet vid användning av skiftlägeskänsliga filer. Du kan också använda den med vanliga Windows-program. Från och med Windows 10 Build 17110 är detta beteende standard.
Fler detaljer
Skiftlägeskänslighet i Windows
Windows NT-familjen av operativsystem (inklusive Windows 10) har alltid haft förmågan att utföra skiftlägeskänsliga filsystemoperationer. Ansökningar kan passera FILE_FLAG_POSIX_SEMANTICS
flagga till Skapa fil
API för att indikera att de vill att sökvägen ska behandlas som skiftlägeskänslig. Men av kompatibilitetsskäl finns det en global registernyckel som åsidosätter detta beteende; när denna nyckel är inställd är alla filoperationer skiftlägesokänsliga, även när FILE_FLAG_POSIX_SEMANTICS
flaggan anges. Sedan Windows XP har detta varit standard.
Windows-undersystemet för Linux använder en annan mekanism, som själv kringgår den registernyckeln, vilket gör att vi kan utföra skiftlägeskänsliga filsystemoperationer. Det är detta som gör att Linux-applikationer som körs i WSL kan använda filnamn som bara skiljer sig från fall till fall, precis som de kan på riktig Linux, även med den globala registernyckeln.
Tyvärr lämnar detta dig med filer som inte kan nås av Windows-program. Även om du kan ändra den globala registernyckeln, skulle det fortfarande bara fungera för de program som använder FILE_FLAG_POSIX_SEMANTICS
, och detta skulle ändra beteendet för alla filer på alla enheter, vilket kanske inte är avsett och kan skada vissa program.
Skiftlägeskänslighet per katalog
För att lösa detta problem lade Microsoft till en ny skiftlägeskänslig flagga som kan appliceras på kataloger. För kataloger som har denna flagga inställd är alla operationer på filer i den katalogen skiftlägeskänsliga, oavsett om FILE_FLAG_POSIX_SEMANTICS
specificerades. Det betyder att om du har två filer som bara skiljer sig från skiftläge i en katalog markerad som skiftlägeskänslig, kommer alla applikationer att kunna komma åt dem.
Aktivera skiftlägeskänsligt läge för mappar
För att aktivera eller inaktivera den här funktionen bör du använda den inbyggda fsutil.exe-appen.
För att aktivera skiftlägeskänsligt läge för mappar, gör följande.
- Öppen en förhöjd kommandoprompt.
- Skriv följande kommando:
fsutil.exe fil setCaseSensitiveInfo "fullständig sökväg till din mapp" aktivera
Ersätt sökvägsdelen med rätt sökväg som matchar din dator.
Till exempel,fsutil.exe fil setCaseSensitiveInfo "C:\data\Winaero\Linux" aktivera
- Du är färdig.
Nu kan du skapa två filer med samma namn och med endast en skillnad i skiftläge. Windows 10 kommer att bearbeta dem korrekt i den här mappen.
Kör kommandot för att se funktionsstatus för en mapp
fsutil.exe fil queryCaseSensitiveInfo "fullständig sökväg till din mapp"
Till exempel,
fsutil.exe fil queryCaseSensitiveInfo "C:\data\Winaero\Linux"
Du kommer att se något sånt här:
Till sist, för att inaktivera skiftlägeskänsligt läge för mappar, kör nästa kommando i kommandotolken som öppnas som administratör:
fsutil.exe fil setCaseSensitiveInfo "C:\data\Winaero\Linux" inaktivera
Använd rätt mappsökväg och du är klar.
Notera: Inaktivering av CaseSensitiveInfo-attributet för icke-tomma mappar stöds inte. Du måste ta bort alla filer från mappen innan du inaktiverar den.
Det är allt.