Toutes les versions de Windows ne respectent-elles pas la casse?


18

Je sais que le système d'exploitation Windows est (généralement) insensible à la casse. Est-ce vrai pour tous les systèmes d'exploitation Windows (de Windows 95 à Windows 7)? Existe-t-il une configuration de registre pour rendre Windows sensible à la casse?


2
Oui, comme toutes les versions de MS-DOS d'où cet attribut a été hérité. (Bien sûr, MS-DOS n'a pas conservé la casse, donc les choses ont avancé :-).)
Richard

Insensible à la casse par rapport à quoi? Noms de fichiers? Mots de passe?
Peter Mortensen

Réponses:


15

Oui, cela est vrai pour toutes les versions de Windows. Il n'y a aucun moyen de rendre Windows sensible à la casse. Gardez à l'esprit que certaines applications initialement développées pour Unix / Linux puis portées peuvent être sensibles à la casse. Cygwin, par exemple, est sensible à la casse. Ce comportement est cependant extrêmement rare.


7
"Il n'y a aucun moyen de rendre Windows sensible à la casse." n'est pas tout à fait exact. Il existe des moyens de rendre certaines parties de Windows sensibles à la casse, comme expliqué dans les autres réponses.
sleske

Il est vrai cependant que d'un utilisateur point de vue, les noms de fichiers Windows sont insensibles à la casse, et il n'y a pas (facile) moyen de changer cela.
sleske

Certains aspects de Windows peuvent être rendus sensibles à la casse, mais il repose sur les capacités d'autres PC. L'enregistrement dans un répertoire partagé qui se trouve réellement sur un PC Linux permettra d'utiliser des noms de fichiers sensibles à la casse. Cela est dû au FILESYSTEM comme @sleske l'a dit, pas parce que "c'est Windows"
UtahJarhead

1
Ce n'est pas tout à fait vrai. Vous pouvez rendre plusieurs versions de Windows et certaines versions de bureau sensibles à la casse avec les services Windows pour UNIX.
Keltari

1
@Matt Cette réponse n'est pas correcte (bien qu'il s'agisse de réponses appropriées publiées). Vous n'avez tout simplement pas activé la sensibilité à la casse. superuser.com/questions/266110/… Je dois déposer un fichier nommé testfile et Testfile. /bIn/BaShne fonctionne pas sur mon système.
William

8

En fait, cela dépend du sous-système API / Windows que vous (votre programme) utilisez.

Si vous utilisez l '" API Windows " (la norme pour les applications Windows), les noms de fichiers ne respectent pas la casse. Cependant, si vous utilisez le sous-système POSIX (alias Services Windows pour Unix), vous pouvez activer la sensibilité à la casse.

Voir par exemple cet article de support MS: Activer le comportement sensible à la casse avec Windows XP et le sous-système Interix ou SFU


5

Cygwin essaie d'émuler Unix. Il doit donc hériter de la sensibilité à la casse pour ne pas interrompre les applications. Windows n'est pas sensible à la casse. Il s'agit du système de fichiers. Vous pouvez en savoir plus à ce sujet dans Système de fichiers, Systèmes de fichiers sous Microsoft Windows (Wikipedia).


Correct. NTFS est sensible à la casse, il n'est désactivé que sous Windows. On peut l'activer mais c'est extrêmement unsupported.. pour ainsi dire.
Apache

Cela s'adresse au PO et non à MijndertStuij, mais je ne voulais pas marcher sur ses orteils. Il mérite le représentant sur celui-ci. Qu'il s'agisse de FAT (comme les versions MS-DOS et Windows d'origine) ou NTFS (Windows NT et versions ultérieures), ils sont tous insensibles à la casse. Vous remarquerez un peu ces différences si vous enregistrez des fichiers dans un système de fichiers Linux sur Samba (cousin du partage de fichiers et d'imprimantes).
UtahJarhead

De la page Wikipedia NTFS: Caractères autorisés dans les noms de fichiers. - Dans l'espace de noms Posix, toute unité de code UTF-16 (sensible à la casse) sauf U + 0000 (NUL) et / (barre oblique). Dans l'espace de noms Win32, toute unité de code UTF-16 (insensible à la casse) sauf U + 0000 (NUL) / (barre oblique) \ (barre oblique inverse): (deux-points) * (astérisque)? (Point d'interrogation) "(citation) <(moins que)> (supérieur à) et | (pipe) [5]
UtahJarhead

Essayez /bIn/BaShde lancer Cygwin et dites-moi encore qu'il est sensible à la casse.
Matt

5

Microsoft a ajouté un nouvel indicateur (attribut) sensible à la casse qui peut être appliqué aux répertoires (dossiers) NTFS. Pour les répertoires pour lesquels cet indicateur est défini (activé), toutes les opérations sur les fichiers de ce répertoire sont sensibles à la casse, que FILE_FLAG_POSIX_SEMANTICS ait été spécifié ou non. Cela signifie que si vous avez deux fichiers qui ne diffèrent que par la casse dans un répertoire marqué comme sensible à la casse, toutes les applications pourront y accéder.

À partir de Windows 10 build 17107 , Microsoft a ajouté la possibilité d'afficher et de modifier cet indicateur à la commande fsutil.exe.

Pour vérifier si un répertoire est sensible à la casse, exécutez la commande suivante:

fsutil.exe file queryCaseSensitiveInfo <path>

Pour marquer un répertoire comme respectant la casse ou insensible à la casse respectivement:

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

4

C'est d' ici . Vous pouvez définir la HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitivevaleur de registre 0comme l'ont suggéré d'autres auteurs. Créez un fichier nommé add.regavec le contenu suivant et exécutez-le.

Windows Registry Editor Version 5.00

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

Utilisez ensuite Cygwin pour travailler avec des noms de fichiers sensibles à la casse.

Pour ce faire, vous devez monter des systèmes de fichiers NTFS avec posix=1option dans votre /etc/fstab, comme le suggère cet article . Voici un extrait de mon 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

Une fois que ce qui précède est fait, vous serez en mesure de traiter les noms de fichiers sensibles à la casse en utilisant bash, mc, gitetc.

Assurez-vous de redémarrer après avoir modifié les deux.


3

Barfieldmv est correct. Le système de fichiers est en effet sensible à la casse et les fichiers sont stockés avec leur casse appropriée. La couche d'accès aux fichiers est responsable de la suppression du cas lors de la mise en correspondance des fichiers avec les nouveaux descripteurs de fichiers


1
Pouvez-vous fournir plus de détails sur le fonctionnement de cette abstraction entre le système de fichiers et l'utilisateur (c.-à-d. Fournir un exemple étape par étape)? Vous devez également répondre aux questions réelles de l'op sur les systèmes d'exploitation précédents et savoir si le comportement sensible à la casse peut être forcé.
MaQleod

Je ne serai pas en mesure de fournir une réponse très complète de nos jours, car je suis un énorme nerd Linux maintenant .. Cependant, je peux offrir ce qui suit. Les services Windows pour Unix utilisent les mêmes systèmes de fichiers que le système d'exploitation, en particulier, en n'utilisant pas les API qui permettent l'insensibilité à la casse. Voir: support.microsoft.com/kb/817921 pour plus d'informations sur la façon dont Case 'Preserving' est identique à Case 'Sensitive' mais les couches d'accès communes autorisent Case 'Ignorance' :)
whardier

Vous pouvez dire que Windows n'est pas sensible à la casse, mais qu'il respecte la casse. Cela signifie qu'il (Windows) sait si la lettre est en majuscule ou en minuscule et qu'il accepte les deux. Il ne lit pas l'un ou l'autre comme une erreur.
IGRACH
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.