Чому чутливий регістр NTFS?


24

Я особисто вважав, що NTFS є нечутливим до регістру, оскільки ви можете набрати cmd, CMD, cMd або навіть CmD і все ще отримати командний рядок. Однак, чому так, що під час CHKDSK x: /f /r, іноді він фіксує написання великих літер у деяких файлах? Якщо це не стосувалося справи, це не повинно мати значення, і CHKDSK не повинен перевіряти, чи це насправді CMD або cmd. Чи правий я? Де це насправді має значення у файловій системі?


25
Зауважте, що "залежність від регістру" та "збереження регістру" - це дві окремі речі. NTFS зберігає регістри, але нечутливий до регістру в просторі імен Win32, але може бути чутливим до регістру в просторі імен POSIX.
grawity

Відповіді:


34

Чутливість регістру файлової системи є окремим питанням від операційної системи. Останні випуски Windows базуються на ядрі NT, який успадковує безліч властивостей не-NT Windows 95 і навіть MS-DOS. Поряд з ядром NT, файлова система, NTFS, була розроблена таким чином, щоб залежати від регістру - бути сумісним з POSIX .

Хоча підсистема Win32 не підтримує імена файлів, які відрізняються лише чутливістю до регістру, можна створити ці файли із системними дзвінками нижчого рівня.


1
Мені невідомий простий спосіб створення таких файлів у Windows. Однак виклик API CreateFile () з бітом FILE_FLAG_POSIX_SEMANTICS повинен виконувати завдання програмно.
Френк

2
@Luke: Win32 не підтримує регістри файлів. Вам доведеться здійснювати дзвінки API в підсистему ОС. osronline.com/article.cfm?id=91
surfasb

2
@Luke: Одним із простих способів було б встановити привід NTFS з системи Linux та створити потрібні там файли :)
Hippo

1
Просто переконайтеся, що у вас є правильна версія Windows NT та встановіть підсистему для утилітів додатків на базі UNIX, люди.
JdeBP

1
@Luke: Як завжди, на допомогу Вікіпедія . :-)
afrazier

7

Це насправді не NTFS, про який ви питаєте.

NTFS - файлова система. Ваше питання справді стосується чутливості до регістру командної оболонки Windows. Вони зовсім інші. Провідник Windows - це графічна оболонка команди. Вводячи cmd(наприклад, в Start | Run), ви говорите командній оболонці Windows, щоб виконати команду cmd(яка сама по собі є іншою командною оболонкою, але на основі командного рядка, а не графічного).

Аналогічно, CHKDSK не проводить жодної перевірки на те, чи використовували ви CMD чи cmd. Все, про що знає CHKDSK, - це параметри, які ви йому передаєте, і в цьому випадку x :, / f і / r.

Що стосується ЧКДСК "фіксація капіталізації", я не дуже впевнений, що ти там маєш на увазі.


4
NTFS відрізняється від регістру. Згідно зі статтею MS KB 100625: У NTFS ви можете створювати унікальні імена файлів, що зберігаються в одному каталозі, які відрізняються лише у випадку. Наприклад, такі файли файлів можуть співіснувати в одному каталозі на томі NTFS: CASE.TXT case.txt case.TXT Однак, якщо ви спробуєте відкрити один із цих файлів у програмі Win32, наприклад, Блокноті, у вас буде доступ лише до одного з файлів, незалежно від регістру імені файлу, який ви вводите у діалоговому вікні «Відкрити файл».
Френк

Це правда, дякую за пояснення цього. Я взяв цю частину своєї відповіді, оскільки це не так вже й справді.
шквал

> Однак якщо ви спробуєте відкрити один із цих файлів у програмі Win32, наприклад, Блокноті, у вас буде доступ лише до одного з файлів, незалежно від випадку імені файлу, який ви вводите у діалоговому вікні «Відкрити файл», який саме?
Synetech

4
@Synetech: Перший, можливо? Залежить від порядку файлів у каталозі та, можливо, фази місяця.
grawity

5

Я підозрюю, що претендент на запитання, що chkdsk.exe "фіксує написання великих літер у деяких файлах", насправді викликає повідомлення CHKDSK, яке виникає за певних обставин:

виправлення помилок у верхньому регістрі

В основному, це є результатом версії chkdsk.exe для Windows XP, що працює на томі NTFS, відформатованому в більш пізній версії Windows, як описано в повідомленні про помилку під час запуску Chkdsk.exe на базі Windows XP або на Windows Комп'ютер на базі сервера 2003: "Виправлення помилок у великому регістрі" . Підсумок полягає в тому, що це насправді не помилка і не має нічого спільного з чутливістю до регістру.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.