Чи всі версії корпусу Windows нечутливі?


18

Я знаю, що ОС Windows (як правило) нечутлива до регістру. Чи правда це для всіх ОС Windows (від Windows 95 до Windows 7)? Чи є налаштування реєстру, щоб зробити Windows чутливим до регістру?


2
Так, як і всі версії MS-DOS, від яких цей атрибут був успадкований. (Звичайно, MS-DOS не зберегла справу, тому все пішло вперед :-).)
Річард

Справа нечутлива щодо чого? Імена файлів? Паролі?
Пітер Мортенсен

Відповіді:


15

Так, це стосується всіх версій Windows. Немає можливості зробити Windows чутливим до регістру. Майте на увазі, що деякі програми, які були розроблені для Unix / Linux, а потім перенесені, можуть залежати від регістру. Наприклад, Cygwin чутливий до регістру. Однак ця поведінка надзвичайно рідкісна.


7
"Немає можливості зробити чутливий регістр Windows." не зовсім точний. Існують способи зробити частини Windows з урахуванням регістру, як це пояснено в інших відповідях.
sleske

Це правда , однак , що від користувача точки зору, імена файлів Windows , не чутливі до регістру, і немає (простий) спосіб , щоб змінити це.
sleske

Деякі аспекти Windows можуть бути чутливими до регістру, але він покладається на можливості інших ПК. Збереження до спільного каталогу, який є справді на ПК з ПК Linux, дозволить використовувати імена файлів, що залежать від регістру. Це пов’язано з FILESYSTEM, як сказав @sleske, а не тому, що "це Windows"
UtahJarhead

1
Це не зовсім вірно. Ви можете зробити версії Windows та деякі версії настільних комп'ютерів чутливими до Служб Windows для UNIX.
Келтарі

1
@Matt Ця відповідь не правильна (хоча вони відповідні відповіді розміщені). У вас просто не ввімкнена чутливість регістру. superuser.com/questions/266110/… Я маю подати один ім'я testfile та Testfile. /bIn/BaShне працює в моїй системі.
Вільям

8

Насправді це залежить від підсистеми API / Windows, яку ви (ваша програма) використовуєте.

Якщо ви використовуєте " API API " (стандарт для програм Windows), то назви файлів не залежать від регістру. Однак якщо ви використовуєте підсистему POSIX (він же Служби Windows для Unix), ви можете включити чутливість до регістру.

Дивіться, наприклад, цю статтю про підтримку MS: Увімкніть поведінку з урахуванням регістру за допомогою Windows XP та підсистеми Interix або SFU


5

Cygwin намагається наслідувати Unix. Таким чином, йому потрібно успадковувати чутливість випадку, щоб не порушувати програми. Windows сама по собі не враховує регістри. Йдеться про файлову систему. Докладніше про це можна прочитати у файловій системі, файлові системи в Microsoft Windows (Wikipedia).


Правильно. NTFS є чутливі до регістру, це тільки відключити в Windows. Можна це дозволити, але це надзвичайно .. так unsupportedсказати.
Apache

Це спрямовано до ОП не MijndertStuij, але я не хотів наступати на його ноги. Він заслуговує представника на цьому. Будь то FAT (як оригінальні версії MS-DOS та Windows) чи NTFS (Windows NT та новіші версії), всі вони не залежать від випадків. Ці відмінності ви помітите трохи, якщо ви збережете файли у файлову систему Linux через Samba (двоюрідний брат родичів файлів та друку).
UtahJarhead

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

Спробуйте запустити /bIn/BaShв Cygwin і скажіть мені ще раз, що це чутливість до регістру.
Метт

5

Microsoft додав новий прапор (атрибут) з урахуванням регістру, який можна застосувати до каталогів (папок) NTFS. Для каталогів, у яких цей прапор встановлено (увімкнено), всі операції над файлами в цьому каталозі залежать від регістру, незалежно від того, вказано FILE_FLAG_POSIX_SEMANTICS. Це означає, що якщо у вас є два файли, які відрізняються лише за регістром у каталозі, позначеному як регістр, всі програми отримають доступ до них.

Починаючи з складання Windows 10 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 для отримання інформації про те, як "Збереження справи" таке ж, як "Чутливий" випадок, однак загальні шари доступу дозволяють мати справу "Ігнорування" :)
whardier

Можна сказати, що Windows не чутливі до регістру, а просто відомі. Це означає, що він (windows) знає, чи є літери великими або малими літерами, і він приймає обидва. Він не читає те чи інше як і помилку.
ІГРАЧ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.