Omogočite način, ki razlikuje velike in male črke za mape v sistemu Windows 10
Kot morda že veste, datotečni sistem Windows, NTFS, obravnava imena datotek in map kot neobčutljive na velike in male črke. Na primer, za OS in aplikacije sta MyFile.txt in myfile.txt ista datoteka. Vendar so stvari v Linuxu drugačne. Za ta OS sta to dve različni datoteki. Ta razlika v vedenju lahko povzroči težave uporabnikom WSL. Da bi jih rešili, Windows 10 vključuje možnost, da za mape omogočite način, ki je občutljiv na velike in male črke.
Oglas
Če ste uporabili Podsistem Windows za Linux, verjetno se zavedate, da vam omogoča, da vaše datotečne sisteme Windows (vgrajene pod /mnt/c, /mnt/d itd.) obravnavate kot občutljive na velike in male črke. To med drugim pomeni, da lahko ustvarite datoteke, katerih imena se razlikujejo le po velikih in malih črkah (npr. foo.txt in FOO.TXT).
Vendar pa uporaba teh datotek v sistemu Windows ni bila mogoča. Ker aplikacije Windows obravnavajo datotečni sistem kot neobčutljiv na velike in male črke, ne morejo razlikovati med datotekami, katerih imena se razlikujejo le v velikih in malih črkah. Medtem ko bi File Explorer pokazal obe datoteki, bi se odprla samo ena, ne glede na to, katero ste kliknili.
Začenši z različico Windows Insajder 17093, obstaja nov način ravnanja z datotekami, občutljivimi na velike in male črke v sistemu Windows: občutljivost na velike in male črke na imenik. Ta možnost je bila dodana, da bi uporabniku omogočila boljšo interoperabilnost pri uporabi datotek, občutljivih na velike in male črke. Prav tako ga lahko uporabljate z običajnimi Windows aplikacijami. Od različice Windows 10 Build 17110 je to vedenje privzeto.
Več podrobnosti
Občutljivost velikih in malih črk v sistemu Windows
Družina operacijskih sistemov Windows NT (vključno z Windows 10) je vedno imela možnost izvajanja operacij datotečnega sistema, ki je občutljiv na velike in male črke. Prijave lahko prenesejo FILE_FLAG_POSIX_SEMANTICS
zastavo na Ustvari datoteko
API, da označijo, da želijo, da se pot obravnava kot občutljiva na velike in male črke. Vendar pa zaradi združljivosti obstaja globalni registrski ključ, ki preglasi to vedenje; ko je ta ključ nastavljen, so vse operacije z datotekami neobčutljive na velike in male črke, tudi če je FILE_FLAG_POSIX_SEMANTICS
zastava je določena. Od Windows XP je to privzeto.
Podsistem Windows za Linux uporablja drug mehanizem, ki sam zaobide ta registrski ključ in nam omogoča izvajanje operacij datotečnega sistema, ki je občutljiv na velike in male črke. To je tisto, kar omogoča aplikacijam Linux, ki se izvajajo v WSL, da uporabljajo imena datotek, ki se razlikujejo samo glede na velike in male črke, tako kot lahko v resničnem Linuxu, tudi s tem globalnim naborom registrskih ključev.
Na žalost vam to pusti datoteke, do katerih aplikacije Windows ne morejo dostopati. Čeprav bi lahko spremenili globalni registrski ključ, bi to še vedno delovalo samo za tiste aplikacije, ki uporabljajo FILE_FLAG_POSIX_SEMANTICS
, in to bi spremenilo vedenje za vse datoteke na vseh pogonih, kar morda ni predvideno in lahko pokvari nekatere aplikacije.
Občutljivost velikih in malih črk na imenik
Za rešitev te težave je Microsoft dodal novo zastavico, ki je občutljiva na velike in male črke, ki jo je mogoče uporabiti za imenike. Za imenike, ki imajo to zastavico nastavljeno, so vse operacije nad datotekami v tem imeniku občutljive na velike in male črke, ne glede na to, ali FILE_FLAG_POSIX_SEMANTICS
je bil določen. To pomeni, da če imate dve datoteki, ki se razlikujeta samo po velikih in malih črkah v imeniku, ki je označen kot občutljiv na velike in male črke, bodo lahko vse aplikacije dostopale do njih.
Omogoči način, občutljiv na velike in male črke za mape
Če želite omogočiti ali onemogočiti to funkcijo, uporabite vgrajeno aplikacijo fsutil.exe.
Če želite omogočiti način, ki razlikuje velike in male črke za mape, naredite naslednje.
- Odprto povišan ukazni poziv.
- Vnesite naslednji ukaz:
Datoteka fsutil.exe setCaseSensitiveInfo omogoči "polno pot do vaše mape".
Zamenjajte del poti s pravilno potjo, ki se ujema z vašim računalnikom.
na primerDatoteka fsutil.exe setCaseSensitiveInfo "C:\data\Winaero\Linux" omogoči
- Končali ste.
Zdaj lahko ustvarite dve datoteki z istim imenom in samo z razliko med velikimi in malimi črkami. Windows 10 jih bo pravilno obdelal v tej mapi.
Če si želite ogledati stanje funkcije za mapo, zaženite ukaz
fsutil.exe datoteka queryCaseSensitiveInfo "celotna pot do vaše mape"
na primer
fsutil.exe datoteka queryCaseSensitiveInfo "C:\data\Winaero\Linux"
Videli boste nekaj takega:
končno, da onemogočite način, ki razlikuje velike in male črke za mape, zaženite naslednji ukaz v ukazni vrstici, odprti kot skrbnik:
fsutil.exe datoteka setCaseSensitiveInfo "C:\data\Winaero\Linux" onemogoči
Uporabite pravilno pot do mape in končali ste.
Opomba: Onemogočanje atributa CaseSensitiveInfo za neprazne mape ni podprto. Preden jo onemogočite, morate odstraniti vse datoteke iz mape.
To je to.