Активирайте режима, чувствителен към малки и големи букви за папки в Windows 10
Както може би вече знаете, файловата система на Windows, NTFS, третира имената на файлове и папки като независими от малки и големи букви. Например за ОС и приложения MyFile.txt и myfile.txt са един и същи файл. В Linux обаче нещата са различни. За тази ОС това са два различни файла. Тази разлика в поведението може да създаде проблеми за потребителите на WSL. За да ги разреши, Windows 10 включва възможността за активиране на режим, чувствителен към малки и големи букви за папки.
Реклама
Ако сте използвали Подсистема на Windows за Linux, вероятно сте наясно, че ви позволява да третирате вашите файлови системи на Windows (монтирани под /mnt/c, /mnt/d и т.н.) като чувствителни към малки и големи букви. Това означава, наред с други неща, че можете да създавате файлове, чиито имена се различават само по големина (напр. foo.txt и FOO.TXT).
Използването на тези файлове в Windows обаче не беше възможно. Тъй като приложенията на Windows третират файловата система като независима от малки и малки букви, те не могат да правят разлика между файлове, чиито имена се различават само в големи и големи букви. Докато File Explorer ще покаже и двата файла, само един ще бъде отворен, независимо кой от тях сте щракнали.
Започвайки с Windows вътрешна версия 17093, има нов начин за обработка на файлове, чувствителни към малки и малки букви в Windows: чувствителност към главни и малки букви на директория. Тази способност е добавена, за да даде на потребителя по-добра оперативна съвместимост при използване на файлове, чувствителни към малки и големи букви. Освен това можете да го използвате с обикновени Windows приложения. Започвайки от Windows 10 Build 17110, това поведение е по подразбиране.
Повече информация
Чувствителност на главни и малки букви в Windows
Семейството операционни системи Windows NT (включително Windows 10) винаги е имало способността да изпълнява операции с файлова система, чувствителни към главни букви. Приложенията могат да преминат през FILE_FLAG_POSIX_SEMANTICS
флаг към Създайте файл
API, за да посочат, че искат пътят да се третира като чувствителен към малки и големи букви. Въпреки това, поради съображения за съвместимост, има глобален ключ на системния регистър, който отменя това поведение; когато този ключ е зададен, всички операции с файлове са без значение от главните букви, дори когато FILE_FLAG_POSIX_SEMANTICS
флагът е посочен. От Windows XP това е по подразбиране.
Подсистемата на Windows за Linux използва друг механизъм, който сам заобикаля този ключ на системния регистър, което ни позволява да изпълняваме операции с файлова система, чувствителни към главни букви. Това позволява на приложенията на Linux, работещи в WSL, да използват имена на файлове, които се различават само по случай, точно както могат в истински Linux, дори и с този набор от глобални ключове в системния регистър.
За съжаление, това ви оставя с файлове, които не могат да бъдат достъпни от приложенията на Windows. Въпреки че можете да промените ключа на глобалния регистър, това все пак ще работи само за онези приложения, които използват FILE_FLAG_POSIX_SEMANTICS
, и това би променило поведението за всички файлове на всички устройства, което може да не е предназначено и може да повреди някои приложения.
Чувствителност на главни и малки букви на директория
За да разреши този проблем, Microsoft добави нов флаг, чувствителен към малки и големи букви, който може да се прилага към директории. За директории, които имат този флаг, всички операции с файлове в тази директория са чувствителни към малки и големи букви, независимо дали FILE_FLAG_POSIX_SEMANTICS
беше уточнено. Това означава, че ако имате два файла, които се различават само по главни и малки букви в директория, отбелязана като чувствителна към главни букви, всички приложения ще имат достъп до тях.
Активиране на режима, чувствителен към малки и големи букви за папки
За да активирате или деактивирате тази функция, трябва да използвате вграденото приложение fsutil.exe.
За да активирате режима, чувствителен към малки и големи букви за папки, направете следното.
- Отвори повишен команден ред.
- Въведете следната команда:
fsutil.exe файл setCaseSensitiveInfo "пълен път до вашата папка" е активиран
Заменете частта от пътя с правилния път, съответстващ на вашия компютър.
Например,fsutil.exe файл setCaseSensitiveInfo "C:\data\Winaero\Linux" активиране
- Ти си готов.
Сега можете да създадете два файла с едно и също име и само с разлика в регистъра. Windows 10 ще ги обработи правилно в тази конкретна папка.
За да видите състоянието на функцията за папка, изпълнете командата
fsutil.exe файл queryCaseSensitiveInfo "пълен път до вашата папка"
Например,
fsutil.exe файл queryCaseSensitiveInfo "C:\data\Winaero\Linux"
Ще видите нещо подобно:
накрая, за да деактивирате режима, чувствителен към малки и големи букви за папки, изпълнете следващата команда в командния ред, отворен като администратор:
fsutil.exe файл setCaseSensitiveInfo "C:\data\Winaero\Linux" деактивирайте
Използвайте правилния път към папката и сте готови.
Забележка: Деактивирането на атрибута CaseSensitiveInfo за непразни папки не се поддържа. Трябва да премахнете всички файлове от папката, преди да я деактивирате.
Това е.