Groß- und Kleinschreibung bei Dateierweiterungen unter Windows und Linux

10

Unter Linux können Sie die Dateien example.JPGund example.jpgim selben Verzeichnis haben.

In Windows haben Sie Erweiterungen, bei denen zwischen Groß- und Kleinschreibung unterschieden wird. Sie können diese beiden Dateien jedoch nicht im selben Verzeichnis ablegen. Warum nicht?

wvdz
quelle
1
Mögliches Duplikat von Sind alle Versionen von Windows unabhängig von Groß- und Kleinschreibung? (Es gibt wahrscheinlich eine bessere Frage als diese)
Cole Johnson
FAT hielt die Erweiterung vom Basisnamen getrennt, und das Betriebssystem fügte sie .für Eingabe- und Anzeigezwecke hinzu. (Ich glaube, man kann mit Sicherheit sagen, dass heutzutage praktisch niemand FAT für irgendetwas anderes als Interoperabilität verwendet.) Ich weiß nicht genau, wie NTFS das macht, aber ich nehme an, es ähnelt jedem großen Linux-Dateisystem, das den Dateinamen einfach als behandelt eine Zeichenfolge. Die Dateierweiterung hat dort nichts Besonderes: Sie dient lediglich der Konvention und wird vom Dateisystem als Teil des Dateinamens behandelt.
Ein CVn
Nachschlagen ObCaseInsensitiveund superuser.com/q/266110/59271
user541686
@grawity ist das nicht nur ein Fall von Tomayto, Tomahto?
wvdz

Antworten:

32

In Windows haben Sie Erweiterungen, bei denen zwischen Groß- und Kleinschreibung unterschieden wird. Sie können diese beiden Dateien jedoch nicht im selben Verzeichnis ablegen. Warum nicht?

Wenn ein Laufwerk als NTFS formatiert ist, können Sie beide example.JPGund haben example.jpg.

Allerdings , wenn Sie öffnen eine dieser Dateien in einer Win32 - Anwendung versuchen , wie Editor, würden Sie nur den Zugriff auf eine der Dateien haben , und zwar unabhängig von dem Fall des Dateinamens Sie im Dialogfeld Datei öffnen eingeben.


Bei Dateinamen wird bei NTFS-Volumes zwischen Groß- und Kleinschreibung unterschieden

Als Teil der Anforderungen für die POSIX-Konformität bietet das Windows NT-Dateisystem (NTFS) eine Namenskonvention für Dateien und Verzeichnisse, bei der zwischen Groß- und Kleinschreibung unterschieden wird. Obwohl NTFS und das POSIX-Subsystem die Groß- und Kleinschreibung jeweils gut verarbeiten, tun dies 16-Bit-Windows-, MS-DOS-, OS / 2-basierte und Win32-basierte Anwendungen nicht .

In NTFS können Sie eindeutige Dateinamen erstellen, die im selben Verzeichnis gespeichert sind und sich nur für den Fall unterscheiden. Beispielsweise können die folgenden Dateinamen in einem Verzeichnis auf einem NTFS-Volume nebeneinander vorhanden sein:

CASE.TXT
case.txt
case.TXT

Allerdings , wenn Sie öffnen eine dieser Dateien in einer Win32 - Anwendung versuchen , wie Editor, würden Sie nur den Zugriff auf eine der Dateien haben , und zwar unabhängig von dem Fall des Dateinamens Sie im Dialogfeld Datei öffnen eingeben.

...

NTFS unterstützt zwei leicht unterschiedliche Betriebsmodi, die vom Subsystem der mit NTFS interagierenden Anwendung ausgewählt werden können. Der erste unterscheidet vollständig zwischen Groß- und Kleinschreibung und verlangt, dass die von der Anwendung bereitgestellten Dateinamen mit den auf der Festplatte gespeicherten Namen übereinstimmen, einschließlich Groß- und Kleinschreibung, wenn die Datei auf der Festplatte ausgewählt werden soll. Die zweite Betriebsart ist die Groß- und Kleinschreibung, jedoch nicht die Groß- und Kleinschreibung. Dies bedeutet, dass Anwendungen Dateien auf der Festplatte auswählen können, auch wenn der angegebene Name von dem auf der Festplatte gespeicherten Namen abweicht. Beachten Sie, dass in beiden Modi die Groß- und Kleinschreibung beibehalten wird, mit der die Dateien erstellt wurden. Der hier festgestellte Verhaltensunterschied gilt nur, wenn eine Anwendung eine vorhandene Datei suchen muss. POSIX nutzt den Modus für Groß- und Kleinschreibung, während MS-DOS, WOW undWin32-Subsysteme verwenden den Modus ohne Berücksichtigung der Groß- und Kleinschreibung .

Bei Quellendateinamen wird bei NTFS-Volumes zwischen Groß- und Kleinschreibung unterschieden :


In der Praxis konnte ich dies nicht erreichen

Um zwei Dateien im selben Verzeichnis zu erhalten, die sich nur je nach Fall unterscheiden, müssen Sie das Posix- Subsystem aktivieren .

POSIX nutzt den Modus, bei dem zwischen Groß- und Kleinschreibung unterschieden wird, während MS-DOS-, WOW- und Win32-Subsysteme den Modus ohne Berücksichtigung der Groß- und Kleinschreibung verwenden.

Um Posix zu aktivieren, siehe:

DavidPostill
quelle
Das sind Neuigkeiten für mich. Ich musste dies jedoch vorübergehend ablehnen, da ich dies in der Praxis nicht erreichen konnte, obwohl Sie Zitate haben . Würde es Ihnen etwas ausmachen, Anweisungen zu geben, wie dies in der Praxis erreicht werden kann?
MDMoore313
7
@ BigHomie Das ist die Windows-Shell, die Sie daran hindert. NTFS kann a.JPG und a.jpg im selben Verzeichnis speichern. Wenn Sie das Unix-Subsystem (veraltet) aktivieren, wird bei Dateinamen auch in der Windows Explorer-Shell zwischen Groß- und Kleinschreibung unterschieden. technet.microsoft.com/en-us/library/cc771470.aspx
Furkan Omay
1
@ FurkanOmay Ich sehe, gutes altes Unix-Subsystem, danke dafür.
MDMoore313
1
@ FurkanOmay Ich wusste, was Sie meinten;)
MDMoore313
@ BigHomie Antwort aktualisiert, um zu erklären, wie man posix
DavidPostill aktiviert
6

NTFS unterscheidet zwischen Groß- und Kleinschreibung (und je nachdem, wie Sie das Glas betrachten, kann es eine gute oder eine schlechte Sache sein). In der Realität war das Erreichen der Groß- und Kleinschreibung in den Anfangszeiten eine Herausforderung, da Sie NICHT zwischen ASCII-Werten für az & AZ unterscheiden mussten.

Es gibt keine Möglichkeit, Windows (das Betriebssystem) zwischen Groß- und Kleinschreibung zu unterscheiden, obwohl NTFS (das Dateisystem), das heutzutage von Windows-Betriebssystemen verwendet wird, die Einhaltung von POSIX unterstützen kann.

Laut Microsoft könnten sich example.JPG und example.jpg unter NTFS im selben Verzeichnis befinden ( hier klicken ), aber das Betriebssystem (Alle Windows-Versionen) unterstützt dies nicht, was die Tatsache macht, dass das Dateisystem sinnlos sein kann :)

Als Teil der Anforderungen für die POSIX-Konformität bietet das Windows NT-Dateisystem (NTFS) eine Namenskonvention für Dateien und Verzeichnisse, bei der zwischen Groß- und Kleinschreibung unterschieden wird . Obwohl NTFS und das POSIX-Subsystem die Groß- und Kleinschreibung jeweils gut verarbeiten, tun dies 16-Bit-Windows-, MS-DOS-, OS / 2-basierte und Win32-basierte Anwendungen nicht.

Dhiwakar Ravikumar
quelle
1
Groß- und Kleinschreibung ist nicht so schwer, insbesondere bei Codierungen wie ASCII. DOS hat es geschafft, CP / M hat es geschafft. Die Unempfindlichkeit gegenüber Groß- und Kleinschreibung sowie die Aufbewahrung von Groß- und Kleinschreibung sind die schwer zu knackenden Nüsse. Sicherlich nicht schwer zu tun, aber schwieriger auf konsistente Weise, wenn Sie das Glück haben, 16-32 KB RAM zum Spielen zu haben, und das muss eine Anwendung enthalten, die auch wirklich nützliche Dinge tut.
Ein Lebenslauf