Както може би вече знаете, файловата система 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
флаг къмCreateFile
API, за да посочи, че искат пътят да се третира като чувствителен към малки и големи букви. От съображения за съвместимост обаче има глобален ключ на системния регистър, който отменя това поведение; когато този ключ е зададен, всички файлови операции не са чувствителни към регистъра, дори когатоFILE_FLAG_POSIX_SEMANTICS
е посочен флаг. От Windows XP това е по подразбиране.
трябва ли да имам itunes, за да поставя музика на моя ipod
Подсистемата на 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 ще ги обработи правилно в тази конкретна папка.
google docs променя една страница на хоризонтална
За да видите състоянието на функцията за папка, изпълнете командата
fsutil.exe файл queryCaseSensitiveInfo „пълен път до вашата папка“
Например,
fsutil.exe файл queryCaseSensitiveInfo 'C: data Winaero Linux'
Ще видите нещо подобно:
как да стигна до chrome flags?
И накрая, за да деактивирате режима, чувствителен на малки и малки букви за папки , изпълнете следващата команда в командния ред, отворен като администратор:
fsutil.exe файл setCaseSensitiveInfo 'C: data Winaero Linux' деактивира
Използвайте правилния път на папката и сте готови.
Забележка: Деактивирането на атрибута CaseSensitiveInfo за непразни папки не се поддържа. Трябва да премахнете всички файлове от папката, преди да я деактивирате.
Това е.