Pourquoi la casse NTFS est-elle sensible?

24

Personnellement, je pensais que NTFS n'était pas sensible à la casse, car vous pouvez taper cmd, CMD, cMd ou même CmD et toujours obtenir l'invite de commande. Cependant, pourquoi est-ce que pendant un CHKDSK x: /f /r, parfois il corrige la capitalisation dans certains fichiers? S'il ne se souciait pas de l'affaire, cela ne devrait pas avoir d'importance, et CHKDSK ne devrait pas vérifier s'il s'agit bien de CMD ou cmd. Ai-je raison? Où est-ce réellement important dans le système de fichiers?

Canadian Luke REINSTATE MONICA
la source
25
Notez que "sensible à la casse" et "préservant la casse" sont deux choses distinctes. NTFS respecte la casse mais ne respecte pas la casse dans l'espace de noms Win32, mais peut être sensible à la casse dans l'espace de noms POSIX.
grawity

Réponses:

34

La sensibilité à la casse d'un système de fichiers est un problème distinct de celui d'un système d'exploitation. Les dernières versions de Windows sont basées sur le noyau NT, qui hérite de nombreuses propriétés de Windows 95 non NT et même de MS-DOS. Avec le noyau NT, le système de fichiers, NTFS, a été conçu pour être sensible à la casse - pour être conforme à POSIX .

Bien que le sous-système Win32 ne prenne pas en charge les noms de fichiers qui ne diffèrent que par la sensibilité à la casse, il est possible de créer ces fichiers avec des appels système de niveau inférieur.

Franc
la source
1
Je ne connais pas de moyen simple de créer de tels fichiers dans Windows. Cependant, l'appel de l'API CreateFile () avec le bit FILE_FLAG_POSIX_SEMANTICS devrait faire le travail par programme.
Frank
2
@Luke: Win32 ne prend pas en charge les fichiers sensibles à la casse. Vous devrez faire des appels API dans le sous-système OS. osronline.com/article.cfm?id=91
surfasb
2
@Luke: Une façon simple serait de monter le lecteur NTFS à partir d'un système Linux et de créer les fichiers que vous souhaitez là-bas :)
Hippo
1
Assurez-vous simplement que vous disposez de la bonne version de Windows NT et installez les utilitaires Subsystem for UNIX-based Applications, people.
JdeBP
1
@Luke: Comme d'habitude, Wikipédia à la rescousse. :-)
afrazier
7

Ce n'est en fait pas NTFS que vous recherchez.

NTFS est le système de fichiers. Votre question concerne vraiment la sensibilité à la casse du shell de commande Windows. Ils sont complètement différents. L'Explorateur Windows est un shell de commande graphique. En entrant cmd(dans Démarrer | Exécuter par exemple), vous dites au shell de commande Windows d'exécuter la commande cmd(qui est en fait un autre shell de commande, mais basé sur la ligne de commande plutôt que graphique).

De même, CHKDSK ne vérifie pas si vous avez utilisé CMD ou cmd. Tout ce que CHKDSK connaît, ce sont les paramètres que vous lui passez, qui dans ce cas sont x :, / f et / r.

Quant à CHKDSK "fixer la capitalisation", je ne suis pas vraiment sûr de ce que vous voulez dire.

squillman
la source
4
Le NTFS est sensible à la casse. Selon l'article 100625 de MS KB: Dans NTFS, vous pouvez créer des noms de fichiers uniques, stockés dans le même répertoire, qui ne diffèrent qu'en cas. Par exemple, les noms de fichiers suivants peuvent coexister dans un répertoire sur un volume NTFS: CASE.TXT case.txt case.TXT Cependant, si vous essayez d'ouvrir l'un de ces fichiers dans une application Win32, telle que le Bloc-notes, vous n'auriez accès qu'à à l'un des fichiers, quel que soit le cas du nom de fichier que vous tapez dans la boîte de dialogue Ouvrir un fichier.
Frank
C'est vrai, merci d'avoir clarifié cela. J'ai retiré cette partie de ma réponse car ce n'est pas vraiment ce qui est en cause ici de toute façon.
squillman
> Cependant, si vous tentez d'ouvrir l'un de ces fichiers dans une application Win32, telle que le Bloc-notes, vous n'auriez accès qu'à l'un des fichiers, quel que soit le cas du nom de fichier que vous saisissez dans la boîte de dialogue Ouvrir un fichier Lequel?
Synetech
4
@Synetech: Le premier, peut-être? Dépend de l'ordre des fichiers dans le répertoire et éventuellement de la phase de lune.
grawity
5

Je soupçonne que l'affirmation du demandeur de questions selon laquelle chkdsk.exe "corrige la capitalisation dans certains fichiers" est en fait provoquée par le message de CHKDSK qui se produit dans certaines circonstances:

correction des erreurs dans le fichier en majuscules

Fondamentalement, cela résulte d'une version Windows XP de chkdsk.exe s'exécutant sur un volume NTFS qui a été formaté dans une version ultérieure de Windows, comme décrit dans Message d'erreur lorsque vous exécutez Chkdsk.exe sur Windows XP ou Windows Ordinateur Server 2003: «Correction des erreurs dans le fichier en majuscules» . Le résultat est que ce n'est vraiment pas une erreur et n'a rien à voir avec la sensibilité à la casse.

kreemoweet
la source