Все версии Windows нечувствительны к регистру?


18

Я знаю, что ОС Windows (как правило) нечувствительна к регистру. Это правда для всех операционных систем Windows (от Windows 95 до Windows 7)? Есть ли настройка реестра, чтобы сделать регистр Windows чувствительным?


2
Да, как и все версии MS-DOS, откуда этот атрибут был унаследован. (Конечно, MS-DOS не сохранила кейс, поэтому дела пошли дальше :-).)
Ричард

Не учитывает регистр в отношении чего? Имена файлов? Пароли?
Питер Мортенсен

Ответы:


15

Да, это верно для всех версий Windows. Нет способа сделать Windows чувствительной к регистру. Имейте в виду, что некоторые приложения, которые были первоначально разработаны для Unix / Linux и затем портированы, могут быть чувствительными к регистру. Cygwin, например, чувствителен к регистру. Это поведение крайне редко, хотя.


7
«Невозможно сделать Windows чувствительной к регистру». не совсем точно. Есть способы сделать части Windows чувствительными к регистру, как объяснено в других ответах.
слеске

Это правда , однако , что от пользователя точки зрения, имена файлов Windows , не чувствительны к регистру, и нет (простой) способ , чтобы изменить это.
слеске

Некоторые аспекты Windows можно сделать чувствительными к регистру, но это зависит от возможностей других ПК. Сохранение в общем каталоге, который действительно находится на ПК с Linux, позволит использовать имена файлов с учетом регистра. Это из-за FILESYSTEM, как сказал @sleske, а не потому, что «это Windows»
UtahJarhead

1
Это не совсем правда. С помощью служб Windows для UNIX вы можете настроить несколько версий версий Windows и некоторых версий для настольных компьютеров.
Келтари

1
@Matt Этот ответ не правильный (хотя они и являются соответствующими ответами). У вас просто не включена чувствительность к регистру. superuser.com/questions/266110/… У меня есть файлы с именем testfile и Testfile. /bIn/BaShне работает в моей системе.
Уильям

8

На самом деле, это зависит от используемой вами (вашей программы) подсистемы API / Windows.

Если вы используете « Windows API » (стандарт для приложений Windows), то имена файлов не чувствительны к регистру. Однако, если вы используете подсистему POSIX (или Windows Services for Unix), вы можете включить чувствительность к регистру.

См., Например, эту статью поддержки MS: Включение чувствительного к регистру поведения с Windows XP и Interix Subsystem или SFU


5

Cygwin пытается подражать Unix. Таким образом, он должен наследовать чувствительность к регистру, чтобы не ломать приложения Windows сама по себе не чувствительна к регистру. Речь идет о файловой системе. Вы можете прочитать больше об этом в Файловая система, Файловые системы под Microsoft Windows (Википедия).


Верный. NTFS является чувствительны к регистру, это только отключить в Windows. Можно включить, но это очень unsupported.. так сказать.
Apache

Это направлено на ФП, а не на MijndertStuij, но я не хотел наступать ему на ноги. Он заслуживает представителя на этом. Будь то FAT (как исходные версии MS-DOS и Windows) или NTFS (Windows NT и более поздние версии), все они не чувствительны к регистру. Вы заметите эти различия немного, если сохраните файлы в файловой системе Linux через Samba (двоюродный брат File and Print Sharing).
UtahJarhead

Со страницы Википедии NTFS: разрешенные символы в именах файлов. - В пространстве имен Posix любая кодовая единица UTF-16 (с учетом регистра), кроме U + 0000 (NUL) и / (косая черта). В пространстве имен Win32 любые единицы кода UTF-16 (без учета регистра), кроме U + 0000 (NUL) / (косая черта) \ (обратная косая черта): (двоеточие) * (звездочка)? (Знак вопроса) "(цитата) <(меньше чем)> (больше чем) и | (труба) [5]
UtahJarhead

Попробуйте запустить /bIn/BaShCygwin и еще раз скажите, что он чувствителен к регистру.
Мэтт

5

Microsoft добавила новый чувствительный к регистру флаг (атрибут), который можно применять к каталогам (папкам) NTFS. Для каталогов, в которых этот флаг установлен (включен), все операции над файлами в этом каталоге чувствительны к регистру независимо от того, был ли указан FILE_FLAG_POSIX_SEMANTICS. Это означает, что если у вас есть два файла, которые отличаются только регистром в каталоге, помеченном как чувствительный к регистру, все приложения смогут получить к ним доступ.

Начиная с Windows 10 build 17107 , Microsoft добавила возможность просматривать и изменять этот флаг в команде fsutil.exe.

Чтобы проверить, является ли каталог чувствительным к регистру, выполните следующую команду:

fsutil.exe file queryCaseSensitiveInfo <path>

Чтобы пометить каталог как регистрозависимый или регистрозависимый соответственно:

fsutil.exe file setCaseSensitiveInfo <path> enable
fsutil.exe file setCaseSensitiveInfo <path> disable

4

Это отсюда . Вы можете установить HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitiveзначение реестра в 0соответствии с предложением других авторов. Создайте файл add.regсо следующим содержимым и запустите его.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"obcaseinsensitive"=dword:00000000

Затем используйте Cygwin для работы с именами файлов с учетом регистра.

Для этого вам необходимо смонтировать файловые системы NTFS с posix=1опцией в вашей /etc/fstab, как предлагается в этой статье . Вот фрагмент из моего fstab:

none                    /cygdrive       cygdrive        binary,posix=1,user             0 0
C:                      /cygdrive/c     ntfs            binary,posix=1,user,auto        0 0
C:/Users                /home           ntfs            binary,posix=1,user,auto        0 0

Как только вышеперечисленное будет сделано, вы сможете работать с именами файлов с учетом регистра, используя bash, mcи gitт. Д.

Обязательно перезагрузите компьютер после редактирования обоих.


3

Barfieldmv правильно. Файловая система действительно чувствительна к регистру, и файлы хранятся в соответствующем регистре. Слой доступа к файлам отвечает за удаление случая при сопоставлении файлов с новыми файловыми дескрипторами


1
Можете ли вы предоставить более подробную информацию о том, как работает эта абстракция между файловой системой и пользователем (т.е. предоставить пошаговый пример)? Вам также следует обратиться к актуальным вопросам ОП на предыдущих ОС и узнать, можно ли принудительно вводить поведение с учетом регистра.
MaQleod

В настоящее время я не смогу дать очень полный ответ, так как сейчас я большой ботаник по Linux. Однако могу предложить следующее. Службы Windows для Unix используют те же файловые системы, что и операционная система, в частности, не используя API, которые обеспечивают нечувствительность к регистру. См. Support.microsoft.com/kb/817921 для получения информации о том, как «Сохранение» дела совпадает с «чувствительным к
регистру

Можно сказать, что окна не чувствительны к регистру, а просто учитывают регистр. Это означает, что он (windows) знает, является ли буква заглавной или строчной, и принимает оба из них. Он не читает ни то, ни другое как и ошибку.
ИГРАЧ
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.