¿Por qué NTFS distingue entre mayúsculas y minúsculas?

24

Personalmente, pensé que NTFS no distingue entre mayúsculas y minúsculas, ya que puede escribir cmd, CMD, cMd o incluso CmD y aún obtener el símbolo del sistema. Sin embargo, ¿por qué durante un CHKDSK x: /f /r, a veces se corrige el uso de mayúsculas en algunos archivos? Si no le importaba el caso, no debería importarle, y CHKDSK no debería verificar si en realidad es CMD o cmd. Estoy en lo cierto? ¿Dónde importa realmente en el sistema de archivos?

El canadiense Luke REINSTATE MONICA
fuente
25
Tenga en cuenta que "distingue entre mayúsculas y minúsculas" y "preservar mayúsculas y minúsculas" son dos cosas distintas. NTFS preserva las mayúsculas y minúsculas pero no distingue entre mayúsculas y minúsculas en el espacio de nombres Win32, pero puede distinguir entre mayúsculas y minúsculas en el espacio de nombres POSIX.
Grawity

Respuestas:

34

La distinción entre mayúsculas y minúsculas de un sistema de archivos es un problema separado del de un sistema operativo. Las últimas versiones de Windows se basan en el núcleo NT, que hereda muchas propiedades de Windows 95 que no son NT e incluso MS-DOS. Junto con el kernel NT, el sistema de archivos, NTFS, fue diseñado para ser sensible a mayúsculas y minúsculas, para ser compatible con POSIX .

Aunque el subsistema Win32 no admite nombres de archivo que solo difieren entre mayúsculas y minúsculas, es posible crear esos archivos con llamadas de sistema de nivel inferior.

Franco
fuente
1
No conozco una manera fácil de crear dichos archivos en Windows. Sin embargo, llamar a la API CreateFile () con el bit FILE_FLAG_POSIX_SEMANTICS debería hacer el trabajo mediante programación.
Frank
2
@Luke: Win32 no admite archivos sensibles a mayúsculas y minúsculas. Tendrá que hacer llamadas API al subsistema del sistema operativo. osronline.com/article.cfm?id=91
surfasb
2
@Luke: Una forma fácil sería montar la unidad NTFS desde un sistema Linux y crear los archivos que desee allí :)
Hippo
1
Solo asegúrese de tener la versión correcta de Windows NT e instale el Subsistema para las utilidades de aplicaciones basadas en UNIX, personas.
JdeBP
1
@Luke: Como siempre, Wikipedia al rescate. :-)
afrazier
7

En realidad, no es NTFS lo que está preguntando.

NTFS es el sistema de archivos. Su pregunta es realmente sobre la distinción entre mayúsculas y minúsculas del shell de comandos de Windows. Son completamente diferentes. Windows Explorer es un shell de comando gráfico. Al ingresar cmd(en Inicio | Ejecutar, por ejemplo), le está diciendo al shell de comandos de Windows que ejecute el comando cmd(que en sí mismo es otro shell de comandos, pero basado en la línea de comandos en lugar de gráfico).

Del mismo modo, CHKDSK no está haciendo ningún tipo de verificación sobre si usó CMD o cmd. Todo lo que CHKDSK conoce son los parámetros que le pasa, que en este caso son x :, / f y / r.

En cuanto a CHKDSK "arreglar la capitalización", no estoy realmente seguro de lo que quiere decir allí.

squillman
fuente
44
El NTFS distingue entre mayúsculas y minúsculas. De acuerdo con el artículo 100625 de MS KB: en NTFS, puede crear nombres de archivo únicos, almacenados en el mismo directorio, que difieren solo en el caso. Por ejemplo, los siguientes nombres de archivo pueden coexistir en un directorio en un volumen NTFS: CASE.TXT case.txt case.TXT Sin embargo, si intenta abrir uno de estos archivos en una aplicación Win32, como Notepad, solo tendrá acceso a uno de los archivos, independientemente del caso del nombre de archivo que escriba en el cuadro de diálogo Abrir archivo.
Frank
Eso es cierto, gracias por aclarar eso. He sacado un poco de mi respuesta ya que no es realmente lo que está en cuestión aquí de todos modos.
Squillman
> Sin embargo, si intenta abrir uno de estos archivos en una aplicación Win32, como el Bloc de notas, solo tendrá acceso a uno de los archivos, independientemente del caso del nombre de archivo que escriba en el cuadro de diálogo Abrir archivo ¿Cuál?
Synetech
44
@Synetech: ¿El primero, tal vez? Depende del orden de los archivos en el directorio, y posiblemente de la fase lunar.
Grawity
5

Sospecho que la afirmación del autor de la pregunta de que chkdsk.exe está "arreglando el uso de mayúsculas en algunos archivos" en realidad es provocada por el mensaje de CHKDSK que ocurre en algunas circunstancias:

corregir errores en el archivo en mayúscula

Básicamente, esto es el resultado de una versión de Windows XP de chkdsk.exe que se ejecuta en un volumen NTFS que se ha formateado en una versión posterior de Windows, como se describe en el mensaje de error cuando ejecuta Chkdsk.exe en Windows XP o Windows Computadora basada en Server 2003: "Corrección de errores en el archivo en mayúscula" . El resultado es que esto realmente no es un error y no tiene nada que ver con mayúsculas y minúsculas.

kreemoweet
fuente