¿Todas las versiones de Windows no distinguen entre mayúsculas y minúsculas?

18

Sé que el sistema operativo Windows no distingue entre mayúsculas y minúsculas. ¿Es esto cierto para todos los sistemas operativos Windows (desde Windows 95 hasta Windows 7)? ¿Hay alguna configuración de registro para hacer que Windows distinga entre mayúsculas y minúsculas?

prosseek
fuente
2
Sí, al igual que todas las versiones de MS-DOS de donde se heredó este atributo. (Por supuesto, MS-DOS no preservó el caso, por lo que las cosas han avanzado :-).)
Richard
¿Sin distinción entre mayúsculas y minúsculas con respecto a qué? Nombres de archivo? Contraseñas
Peter Mortensen

Respuestas:

15

Sí, esto es cierto para todas las versiones de Windows. No hay forma de hacer que Windows distinga entre mayúsculas y minúsculas. Sin embargo, tenga en cuenta que algunas aplicaciones que fueron desarrolladas originalmente para Unix / Linux y luego portadas pueden ser sensibles a mayúsculas y minúsculas. Cygwin, por ejemplo, distingue entre mayúsculas y minúsculas. Sin embargo, este comportamiento es extremadamente raro.

nhinkle
fuente
77
"No hay forma de hacer que Windows distinga entre mayúsculas y minúsculas". No es del todo exacto. Hay formas de hacer que partes de Windows distingan entre mayúsculas y minúsculas, como se explica en las otras respuestas.
sleske
Sin embargo, es cierto que desde el punto de vista del usuario , los nombres de archivo de Windows no distinguen entre mayúsculas y minúsculas, y no hay una forma (fácil) de cambiar eso.
sleske
Algunos aspectos de Windows pueden diferenciarse entre mayúsculas y minúsculas, pero depende de las capacidades de otras PC. Guardar en un directorio compartido que esté realmente en una PC con Linux permitirá utilizar nombres de archivo sensibles a mayúsculas y minúsculas. Esto se debe al FILESYSTEM como dijo @sleske, no porque "es Windows"
UtahJarhead
1
Esto no es enteramente verdad. Puede hacer que las versiones de Windows y algunas versiones de escritorio sean sensibles a mayúsculas y minúsculas con los Servicios de Windows para UNIX.
Keltari
1
@Matt Esta respuesta no es correcta (aunque son respuestas apropiadas publicadas). Simplemente no tiene habilitada la distinción entre mayúsculas y minúsculas. superuser.com/questions/266110/… Tengo que archivar uno llamado testfile y Testfile. /bIn/BaShNo funciona en mi sistema.
William
8

En realidad, esto depende del subsistema API / Windows que use (su programa).

Si utiliza la " API de Windows " (el estándar para las aplicaciones de Windows), los nombres de archivo no distinguen entre mayúsculas y minúsculas. Sin embargo, si usa el subsistema POSIX (también conocido como Servicios de Windows para Unix), puede habilitar la distinción entre mayúsculas y minúsculas.

Consulte, por ejemplo, este artículo de MS Support: habilite el comportamiento sensible a mayúsculas y minúsculas con Windows XP e Interix Subsystem o SFU

sleske
fuente
5

Cygwin intenta emular a Unix. Por lo tanto, necesita heredar mayúsculas y minúsculas para no interrumpir las aplicaciones. Windows en sí mismo no distingue entre mayúsculas y minúsculas. Se trata del sistema de archivos. Puede leer más al respecto en Sistema de archivos, Sistemas de archivos en Microsoft Windows (Wikipedia).

Mijndert Stuij
fuente
Correcto. NTFS es entre mayúsculas y minúsculas, sólo está deshabilitado en Windows. Uno puede habilitarlo pero es extremadamente unsupported... por así decirlo.
Apache
Esto está dirigido al OP, no a MijndertStuij, pero no quería pisarle los pies. Se merece el representante de este. Ya sea FAT (como las versiones originales de MS-DOS y Windows) o NTFS (Windows NT y posterior), no distinguen entre mayúsculas y minúsculas. Notará estas diferencias un poco si guarda los archivos en un sistema de archivos de Linux sobre Samba (primo del uso compartido de archivos e impresiones).
UtahJarhead
Desde la página Wikipedia NTFS: caracteres permitidos en los nombres de archivo. - En el espacio de nombres Posix, cualquier unidad de código UTF-16 (distingue entre mayúsculas y minúsculas) excepto U + 0000 (NUL) y / (barra oblicua). En el espacio de nombres Win32, ¿alguna unidad de código UTF-16 (sin distinción entre mayúsculas y minúsculas) excepto U + 0000 (NUL) / (barra oblicua) \ (barra invertida): (dos puntos) * (asterisco)? (Signo de interrogación) "(cita) <(menor que)> (mayor que) y | (tubería) [5]
UtahJarhead
Intenta correr /bIn/BaShen Cygwin y dime otra vez que distingue entre mayúsculas y minúsculas.
Matt
5

Microsoft agregó una nueva marca de distinción entre mayúsculas y minúsculas (atributo) que se puede aplicar a los directorios (carpetas) NTFS. Para los directorios que tienen este indicador establecido (habilitado), todas las operaciones en los archivos de ese directorio distinguen entre mayúsculas y minúsculas, independientemente de si se especificó FILE_FLAG_POSIX_SEMANTICS. Esto significa que si tiene dos archivos que difieren solo por mayúsculas y minúsculas en un directorio marcado como mayúsculas y minúsculas, todas las aplicaciones podrán acceder a ellos.

A partir de Windows 10 build 17107 , Microsoft ha agregado la capacidad de ver y modificar este indicador al comando fsutil.exe

Para verificar si un directorio distingue entre mayúsculas y minúsculas, ejecute el siguiente comando:

fsutil.exe file queryCaseSensitiveInfo <path>

Para marcar un directorio como sensible a mayúsculas o minúsculas, respectivamente:

fsutil.exe file setCaseSensitiveInfo <path> enable
fsutil.exe file setCaseSensitiveInfo <path> disable
Alexander Popov
fuente
4

Esto es de aquí . Puede establecer el HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitivevalor del registro 0como lo sugieren otros autores. Cree un archivo add.regcon el siguiente contenido y ejecútelo.

Windows Registry Editor Version 5.00

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

Luego use Cygwin para trabajar con nombres de archivo sensibles a mayúsculas y minúsculas.

Para hacerlo, debe montar sistemas de archivos NTFS con posix=1opción en su /etc/fstab, como sugiere este artículo . Aquí hay un fragmento de mi 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

Una vez que se lleva a cabo lo anterior, podrás hacer frente a mayúsculas y minúsculas nombres de archivo utilizando bash, mc, gitetc.

Asegúrese de reiniciar después de editar ambos.

William
fuente
3

Barfieldmv es correcto. El sistema de archivos distingue entre mayúsculas y minúsculas y los archivos se almacenan con su caso apropiado. La capa de acceso a archivos es responsable de eliminar el caso cuando los archivos coinciden con los descriptores de archivos nuevos.

más duro
fuente
1
¿Puede proporcionar más detalles sobre cómo funciona esta abstracción entre el sistema de archivos y el usuario (es decir, proporcionar un ejemplo paso a paso)? También debe abordar las preguntas reales del operador sobre sistemas operativos anteriores y si se puede forzar el comportamiento sensible a mayúsculas y minúsculas.
MaQleod
No podré proporcionar una respuesta muy completa hoy en día, ya que ahora soy un gran nerd de Linux. Sin embargo, puedo ofrecer lo siguiente. Los Servicios de Windows para Unix utilizan los mismos sistemas de archivos que el sistema operativo, específicamente, al no utilizar las API que permiten la insensibilidad a mayúsculas y minúsculas. Consulte: support.microsoft.com/kb/817921 para obtener información sobre cómo Case 'Preservar' es lo mismo que Case 'Sensitive'; sin embargo, las capas de acceso comunes permiten Case 'Ignorance' :)
whardier
Se podría decir que Windows no distingue entre mayúsculas y minúsculas, sino solo mayúsculas y minúsculas. Eso significa que (windows) sabe si la letra está en mayúscula o minúscula y acepta ambos. No lee uno u otro como un error.
IGRACH