Warum unterscheidet NTFS zwischen Groß- und Kleinschreibung?

24

Ich persönlich dachte, dass bei NTFS die Groß- und Kleinschreibung nicht beachtet wird, da Sie cmd, CMD, cMd oder sogar CmD eingeben und trotzdem die Eingabeaufforderung erhalten können. Warum wird jedoch CHKDSK x: /f /rmanchmal die Großschreibung in einigen Dateien korrigiert? Wenn es nicht um den Fall ging, sollte das keine Rolle spielen, und CHKDSK sollte nicht prüfen, ob es sich tatsächlich um CMD oder CMD handelt. Habe ich recht? Wo spielt es eigentlich eine Rolle im Dateisystem?

Der Kanadier Luke REINSTATE MONICA
quelle
25
Beachten Sie, dass "case-sensitive" und "case-preserving" zwei getrennte Dinge sind. Bei NTFS wird die Groß- und Kleinschreibung beibehalten, im Win32-Namespace wird die Groß- und Kleinschreibung jedoch nicht berücksichtigt. Im POSIX-Namespace kann jedoch die Groß- und Kleinschreibung beachtet werden.
Grawity

Antworten:

34

Die Groß- und Kleinschreibung eines Dateisystems unterscheidet sich von der eines Betriebssystems. Die neuesten Windows-Versionen basieren auf dem NT-Kernel, der viele Eigenschaften des Nicht-NT-Windows 95 und sogar von MS-DOS erbt. Zusammen mit dem NT-Kernel wurde das Dateisystem NTFS so konzipiert, dass die Groß- und Kleinschreibung beachtet wird - um POSIX-kompatibel zu sein .

Obwohl das Win32-Subsystem keine Dateinamen unterstützt, die sich nur durch die Berücksichtigung der Groß- und Kleinschreibung unterscheiden, ist es möglich, diese Dateien mit Systemaufrufen niedrigerer Ebene zu erstellen.

Frank
quelle
1
Ich kenne keine einfache Möglichkeit, solche Dateien in Windows zu erstellen. Das Aufrufen der CreateFile () - API mit dem FILE_FLAG_POSIX_SEMANTICS-Bit sollte den Job jedoch programmgesteuert ausführen.
Frank
2
@ Luke: Win32 unterstützt keine Dateien, bei denen zwischen Groß- und Kleinschreibung unterschieden wird. Sie müssen API-Aufrufe im Betriebssystem-Subsystem vornehmen. osronline.com/article.cfm?id=91
surfasb
2
@ Luke: Eine einfache Möglichkeit wäre, das NTFS-Laufwerk von einem Linux-System aus zu mounten und die gewünschten Dateien dort zu erstellen :)
Hippo
1
Stellen Sie einfach sicher, dass Sie über die richtige Version von Windows NT verfügen, und installieren Sie das Dienstprogramm Subsystem für UNIX-basierte Anwendungen.
JdeBP
1
@Luke: Wie immer, Wikipedia zur Rettung. :-)
afrazier
7

Es ist eigentlich nicht NTFS, nach dem Sie fragen.

NTFS ist das Dateisystem. Bei Ihrer Frage geht es wirklich um die Groß- und Kleinschreibung der Windows-Befehlsshell. Sie sind völlig anders. Windows Explorer ist eine grafische Befehlsshell. Wenn Sie cmd(beispielsweise in Start | Ausführen) eingeben, weisen Sie die Windows-Befehlsshell an, den Befehl auszuführen cmd(der selbst eine andere Befehlsshell ist, jedoch nicht grafisch, sondern auf der Befehlszeile basiert).

Ebenso prüft CHKDSK nicht, ob Sie CMD oder cmd verwendet haben. Alles, worüber CHKDSK Bescheid weiß, sind die Parameter, die Sie an CHKDSK übergeben, in diesem Fall x :, / f und / r.

In Bezug auf CHKDSK "Fixing Capitalization" bin ich mir nicht sicher, was Sie dort meinen.

Squillman
quelle
4
Das NTFS unterscheidet zwischen Groß- und Kleinschreibung. Gemäß MS KB-Artikel 100625: In NTFS können Sie eindeutige Dateinamen erstellen, die im selben Verzeichnis gespeichert sind und sich nur in bestimmten Fällen unterscheiden. Die folgenden Dateinamen können beispielsweise gleichzeitig in einem Verzeichnis auf einem NTFS-Volume vorhanden sein: CASE.TXT case.txt case.TXT Wenn Sie jedoch versuchen, eine dieser Dateien in einer Win32-Anwendung wie Notepad zu öffnen, haben Sie nur Zugriff in eine der Dateien, unabhängig von der Schreibweise des Dateinamens, den Sie im Dialogfeld "Datei öffnen" eingeben.
Frank
Das ist wahr, danke, dass Sie das klargestellt haben. Ich habe dieses bisschen aus meiner Antwort herausgenommen, da es sowieso nicht wirklich das ist, was hier in Frage kommt.
squillman
> Wenn Sie jedoch versuchen, eine dieser Dateien in einer Win32-Anwendung wie Notepad zu öffnen, haben Sie nur Zugriff auf eine der Dateien, unabhängig von der Schreibweise des Dateinamens, den Sie im Dialogfeld "Datei öffnen" eingeben. Welche?
Synetech
4
@Synetech: Der erste vielleicht? Hängt von der Dateireihenfolge im Verzeichnis und möglicherweise der Mondphase ab.
Grawity
5

Ich vermute, dass die Behauptung des Fragestellers, dass chkdsk.exe "die Großschreibung in einigen Dateien behebt", von der Meldung von CHKDSK ausgelöst wird, die unter bestimmten Umständen auftritt:

Korrektur von Fehlern in der Großbuchstaben-Datei

Grundsätzlich ist dies auf eine Windows XP-Version von chkdsk.exe zurückzuführen, die auf einem NTFS-Volume ausgeführt wird, das in einer späteren Windows-Version formatiert wurde ( siehe Fehlermeldung beim Ausführen von Chkdsk.exe unter Windows XP oder Windows) Server 2003-Computer: "Korrigieren von Fehlern in der Großbuchstaben-Datei" . Das Fazit ist, dass dies wirklich kein Fehler ist und nichts mit der Groß- und Kleinschreibung zu tun hat.

Kreemoweet
quelle