Freigeben über


Anpassen der Unterscheidung zwischen Groß-/Kleinschreibung

Unterscheidung nach Groß-/Kleinschreibung bestimmt, ob Großbuchstaben (FOO.txt) und Kleinbuchstaben (foo.txt) in einem Datei- oder Verzeichnisnamen als unterschiedlich (Groß-/Kleinschreibung wird berücksichtigt) oder gleichwertig (Groß-/Kleinschreibung wird nicht berücksichtigt) behandelt werden.

  • Unterscheidung nach Groß-/Kleinschreibung: FOO.txt ≠ foo.txt ≠ Foo.txt
  • Keine Unterscheidung nach Groß-/Kleinschreibung: FOO.txt = foo.txt = Foo.txt

Unterschiede zwischen Windows und Linux bei der Unterscheidung nach Groß-/Kleinschreibung

Bei der Arbeit mit Linux- und Windows-Dateien und -Verzeichnissen müssen Sie möglicherweise anpassen, wie die Unterscheidung nach Groß-/Kleinschreibung behandelt wird.

Standardverhalten:

  • Das Windows-Dateisystem behandelt Datei- und Verzeichnisnamen ohne Unterscheidung nach Groß-/Kleinschreibung. „FOO.txt“ und „foo.txt“ werden als identische Dateien behandelt.
  • Das Linux-Dateisystem behandelt Datei- und Verzeichnisnamen mit Unterscheidung nach Groß-/Kleinschreibung. „FOO.txt“ und „foo.txt“ werden als unterschiedliche Dateien behandelt.

Das Windows-Dateisystem unterstützt das Festlegen der Unterscheidung nach Groß-/Kleinschreibung mit Attributflags pro Verzeichnis. Beim Standardverhalten wird die Groß-/Kleinschreibung nicht beachtet. Sie können jedoch ein Attributflag zuweisen, damit für ein Verzeichnis nach Groß-/Kleinschreibung unterschieden wird und Linux-Dateien und -Ordner erkannt werden, die sich möglicherweise nur nach der Groß-/Kleinschreibung unterscheiden.

Dies kann insbesondere beim Einbinden von Laufwerken in das WSL-Dateisystem (Windows-Subsystem für Linux) der Fall sein. Wenn Sie im WSL-Dateisystem arbeiten, führen Sie Linux aus. Daher werden Datei- und Verzeichnisnamen standardmäßig mit Unterscheidung nach Groß-/Kleinschreibung behandelt.

Hinweis

In der Vergangenheit konnte Windows nicht auf Dateien zugreifen, deren Namen sich nur nach Groß-/Kleinschreibung unterschieden, da Windows-Anwendungen das Dateisystem ohne Unterscheidung nach Groß-/Kleinschreibung behandeln und nicht zwischen Dateien unterscheiden können, deren Namen sich nur bezüglich der Groß-/Kleinschreibung unterscheiden. Obwohl Windows-Datei-Explorer beide Dateien anzeigt, wird nur eine Datei geöffnet, unabhängig davon, welche Sie auswählen.

Ändern der Einstellung für die Unterscheidung nach Groß-/Kleinschreibung von Dateien und Verzeichnissen

In den folgenden Schritten wird erläutert, wie Sie ein Verzeichnis im Windows-Dateisystem so ändern, dass die Groß-/Kleinschreibung beachtet wird und Dateien und Ordner erkannt werden, die sich nur nach Groß-/Kleinschreibung unterscheiden.

Warnung

Einige Windows-Anwendungen, die davon ausgehen, dass beim Dateisystem nicht nach Groß-/Kleinschreibung unterschieden wird, verwenden nicht die korrekte Groß-/Kleinschreibung, um auf Dateien zu verweisen. Beispielsweise ist es nicht ungewöhnlich, dass Anwendungen Dateinamen transformieren, um nur Großbuchstaben oder nur Kleinbuchstaben zu verwenden. In Verzeichnissen, die zur Unterscheidung nach Groß-/Kleinschreibung gekennzeichnet sind, können diese Anwendungen nicht mehr auf die Dateien zugreifen. Wenn Windows-Anwendungen neue Verzeichnisse in einer Verzeichnisstruktur erstellen, in der Sie Dateien verwenden, bei denen die Groß-/Kleinschreibung beachtet wird, wird bei diesen Verzeichnissen nicht nach Groß-/Kleinschreibung unterschieden. Dies kann die Arbeit mit Windows-Tools in Verzeichnissen mit Unterscheidung nach Groß-/Kleinschreibung erschweren. Gehen Sie daher beim Ändern der Einstellungen für die Unterscheidung nach Groß-/Kleinschreibung des Windows-Dateisystems mit Bedacht vor.

Überprüfen der aktuellen Einstellung für die Unterscheidung nach Groß-/Kleinschreibung

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob bei einem Verzeichnis im Windows-Dateisystem die Groß-/Kleinschreibung beachtet wird:

fsutil.exe file queryCaseSensitiveInfo <path>

Ersetzen Sie <path> durch Ihren Dateipfad. Für ein Verzeichnis im Windows-Dateisystem (NTFS) sieht der <path> wie folgt aus: C:\Users\user1\case-test. Wenn Sie sich bereits im Verzeichnis user1 befinden, können Sie stattdessen auch einfach den folgenden Befehl ausführen: fsutil.exe file setCaseSensitiveInfo case-test

Ändern der Einstellung für die Unterscheidung nach Groß-/Kleinschreibung

Die Unterscheidung nach Groß-/Kleinschreibung pro Verzeichnis wird seit Windows 10, Build 17107 unterstützt. In Windows 10, Build 17692 wurde die Unterstützung aktualisiert, um das Überprüfen und Ändern des Flags für die Unterscheidung nach Groß-/Kleinschreibung für ein Verzeichnis innerhalb von WSL zu ermöglichen. Die Unterscheidung nach Groß-/Kleinschreibung wird mithilfe eines erweiterten Attributs namens system.wsl_case_sensitive verfügbar gemacht. Der Wert dieses Attributs ist 0 für Verzeichnisse ohne Unterscheidung nach Groß-/Kleinschreibung und 1 für Verzeichnisse mit Unterscheidung nach Groß-/Kleinschreibung.

Zum Ändern der Einstellung für die Unterscheidung nach Groß-/Kleinschreibung eines Verzeichnisses sind erhöhte Berechtigungen erforderlich (Als Administrator ausführen). Zum Ändern des Flags für die Unterscheidung nach Groß-/Kleinschreibung sind auch die Berechtigungen „Attribute schreiben“, „Dateien erstellen“, „Ordner erstellen“ und „Unterordner und Dateien löschen“ für das Verzeichnis erforderlich. Weitere Informationen hierzu finden Sie im Abschnitt zur Problembehandlung.

Um ein Verzeichnis im Windows-Dateisystem so zu ändern, dass die Groß-/Kleinschreibung beachtet wird (FOO ≠ foo), führen Sie PowerShell als Administrator*in aus, und verwenden Sie den folgenden Befehl:

fsutil.exe file setCaseSensitiveInfo <path> enable

Um für ein Verzeichnis im Windows-Dateisystem wieder das Standardverhalten festzulegen, d. h. keine Unterscheidung nach Groß-/Kleinschreibung (FOO ≠ foo), führen Sie PowerShell als Administrator*in aus, und verwenden Sie den folgenden Befehl:

fsutil.exe file setCaseSensitiveInfo <path> disable

Ein Verzeichnis muss leer sein, um das Attributflag für die Unterscheidung nach Groß-/Kleinschreibung für dieses Verzeichnis ändern zu können. Sie können das Flag für die Unterscheidung nach Groß-/Kleinschreibung nicht für ein Verzeichnis deaktivieren, das Ordner/Dateien enthält, deren Namen sich nur nach der Groß-/Kleinschreibung unterscheiden.

Vererbung der Einstellung für die Unterscheidung nach Groß-/Kleinschreibung

Beim Erstellen neuer Verzeichnisse erben diese Verzeichnisse die Einstellung für die Unterscheidung nach Groß-/Kleinschreibung vom übergeordneten Verzeichnis.

Warnung

Bei der Ausführung im WSL 1-Modus gibt es eine Ausnahme von dieser Vererbungsrichtlinie. Wenn eine Distribution im WSL 1-Modus ausgeführt wird, wird das Flag für die Unterscheidung nach Groß-/Kleinschreibung pro Verzeichnis nicht geerbt. In Verzeichnissen, die in einem Verzeichnis erstellt werden, in dem die Groß-/Kleinschreibung beachtet wird, wird nicht automatisch nach Groß-/Kleinschreibung unterschieden. Sie müssen jedes Verzeichnis explizit als Verzeichnis mit Unterscheidung nach Groß-/Kleinschreibung markieren.

Optionen für die Unterscheidung nach Groß-/Kleinschreibung zum Einbinden eines Laufwerks in der WSL-Konfigurationsdatei

Die Unterscheidung nach Groß-/Kleinschreibung kann beim Einbinden eines Laufwerks im Windows-Subsystem für Linux mithilfe der WSL-Konfigurationsdatei verwaltet werden. Jede Linux-Distribution, die Sie installiert haben, kann über eine eigene WSL-Konfigurationsdatei namens /etc/wsl.conf verfügen. Weitere Informationen zum Einbinden eines Laufwerks finden Sie unter Erste Schritte beim Einbinden eines Linux-Datenträgers in WSL 2.

So konfigurieren Sie die Option für die Unterscheidung nach Groß-/Kleinschreibung in der Datei wsl.conf beim Einbinden eines Laufwerks:

  1. Öffnen Sie die Linux-Distribution, die Sie verwenden möchten (z. B. Ubuntu).
  2. Wechseln Sie in den Verzeichnissen nach oben, bis der Ordner etc angezeigt wird (dazu müssen Sie möglicherweise cd .. im Verzeichnis home ausführen).
  3. Listen Sie die Dateien im Verzeichnis etc auf, um festzustellen, ob bereits eine Datei wsl.conf vorhanden ist (verwenden Sie den Befehl ls oder explorer.exe ., um das Verzeichnis in Windows-Datei-Explorer anzuzeigen).
  4. Wenn die Datei wsl.conf noch nicht vorhanden ist, können Sie sie erstellen, indem Sie sudo touch wsl.conf verwenden oder sudo nano /etc/wsl.conf ausführen, wodurch die Datei beim Speichern im Nano-Editor erstellt wird.
  5. Die folgenden Optionen können Sie Ihrer Datei wsl.conf hinzufügen:

Standardeinstellung: dir zum Aktivieren der Unterscheidung nach Groß-/Kleinschreibung pro Verzeichnis.

[automount]
options = case = dir

Unterscheidung nach Groß-/Kleinschreibung nicht verfügbar (bei allen Verzeichnissen auf eingebundenen NTFS-Laufwerken wird die Groß-/Kleinschreibung nicht beachtet): off

[automount]
options = case = off

Alle Verzeichnisse auf dem NTFS-Laufwerk mit Unterscheidung nach Groß-/Kleinschreibung behandeln: force

[automount]
options = case = force

Diese Option wird nur für das Einbinden von Laufwerken in Linux-Distributionen unterstützt, die als WSL 1 ausgeführt werden, und erfordert möglicherweise einen Registrierungsschlüssel. Um einen Registrierungsschlüssel hinzuzufügen, können Sie diesen Befehl über eine Eingabeaufforderung mit erhöhten Rechten (Administrator*in) verwenden: reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\lxss /v DrvFsAllowForceCaseSensitivity /t REG_DWORD /d 1.

Sie müssen WSL neu starten, nachdem Sie Änderungen an der Datei wsl.conf vorgenommen haben, damit diese wirksam werden. Sie können WSL mit dem folgenden Befehl neu starten: wsl --shutdown

Tipp

Um ein Laufwerk (das das DrvFs-Dateisystem-Plug-In verwendet, um den Datenträger unter „/mnt“ verfügbar zu machen, z. B. „/mnt/c“, „/mnt/d“ usw.) mit einer bestimmten Einstellung für die Unterscheidung nach Groß-/Kleinschreibung für ALLE Laufwerke einzubinden, verwenden Sie /etc/wsl.conf wie oben beschrieben. Um die Standardeinbindungsoptionen für ein bestimmtes Laufwerk festzulegen, verwenden Sie die Datei /etc/fstab zum Angeben dieser Optionen. Weitere WSL-Konfigurationsoptionen finden Sie unter Konfigurieren der Starteinstellungen pro Distribution mit „wslconf“.

Ändern der Einstellung für die Unterscheidung nach Groß-/Kleinschreibung für ein Laufwerk, das in eine WSL-Distribution eingebunden ist

Bei NTFS-formatierten Laufwerken, die in eine WSL-Distribution eingebunden sind, wird die Groß-/Kleinschreibung standardmäßig nicht beachtet. Um die Einstellung für die Unterscheidung nach Groß-/Kleinschreibung für ein Verzeichnis auf einem Laufwerk zu ändern, das in eine WSL-Distribution (z. B. Ubuntu) eingebunden ist, führen Sie die oben aufgeführten Schritte für das Windows-Dateisystem aus. (Bei EXT4-Laufwerken wird die Groß-/Kleinschreibung standardmäßig beachtet.)

Verwenden Sie den folgenden Befehl, um die Unterscheidung nach Groß-/Kleinschreibung für ein Verzeichnis zu aktivieren (FOO ≠ foo):

fsutil.exe file setCaseSensitiveInfo <path> enable

Verwenden Sie den folgenden Befehl, um die Unterscheidung nach Groß-/Kleinschreibung für ein Verzeichnis zu deaktivieren (FOO = foo) und wieder das Standardverhalten (keine Unterscheidung nach Groß-/Kleinschreibung, FOO = foo) festzulegen:

fsutil.exe file setCaseSensitiveInfo <path> disable

Hinweis

Wenn Sie das Flag für die Unterscheidung nach Groß-/Kleinschreibung eines vorhandenen Verzeichnisses für ein eingebundenes Laufwerk ändern, während WSL ausgeführt wird, müssen Sie sicherstellen, dass WSL keine Verweise auf dieses Verzeichnis enthält. Andernfalls ist die Änderung nicht wirksam. Dies bedeutet, dass das Verzeichnis nicht von WSL-Prozessen geöffnet sein darf, einschließlich der Verwendung des Verzeichnisses (oder seiner Nachfolgerelemente) als aktuelles Arbeitsverzeichnis.

Konfigurieren der Unterscheidung nach Groß-/Kleinschreibung mit Git

Das Git-Versionskontrollsystem verfügt auch über eine Konfigurationseinstellung zum Anpassen der Unterscheidung nach Groß-/Kleinschreibung für die Dateien, mit denen Sie arbeiten. Wenn Sie Git verwenden, können Sie ggf. die Einstellung git config core.ignorecase anpassen.

Geben Sie Folgendes ein, um in Git die Groß-/Kleinschreibung zu beachten (FOO.txt ≠ foo.txt):

git config core.ignorecase false

Geben Sie Folgendes ein, um in Git die Groß-/Kleinschreibung nicht zu beachten (FOO.txt = foo.txt):

git config core.ignorecase true

Wenn Sie diese Option in einem Dateisystem ohne Unterscheidung nach Groß-/Kleinschreibung auf „false“ festlegen, kann dies zu verwirrenden Fehlern, falschen Konflikten oder doppelten Dateien führen.

Weitere Informationen finden Sie in der Dokumentation zur Git-Konfiguration.

Problembehandlung

Mein Verzeichnis enthält Dateien mit gemischter Schreibweise (Groß- und Kleinbuchstaben), bei denen die Unterscheidung nach Groß-/Kleinschreibung erforderlich ist, Windows-Dateisystemtools erkennen diese Dateien jedoch nicht.

Wenn Sie Windows-Dateisystemtools verwenden möchten, um in einem Linux-Verzeichnis zu arbeiten, das Dateien mit gemischter Schreibweise enthält, müssen Sie ein völlig neues Verzeichnis erstellen und dafür die Unterscheidung nach Groß-/Kleinschreibung festlegen. Kopieren Sie dann die Dateien in dieses Verzeichnis (mithilfe von „git clone“ oder „untar“). Die gemischte Groß-/Kleinschreibung der Dateien bleibt erhalten. (Wenn Sie bereits versucht haben, die Dateien in ein Verzeichnis ohne Unterscheidung nach Groß-/Kleinschreibung zu verschieben und Konflikte aufgetreten sind, wurden wahrscheinlich einige Dateien überschrieben und sind nicht mehr verfügbar.)

Fehler: Das Verzeichnis ist nicht leer.

Sie können die Einstellung für die Unterscheidung nach Groß-/Kleinschreibung nicht für ein Verzeichnis ändern, das andere Dateien oder Verzeichnisse enthält. Versuchen Sie, ein neues Verzeichnis zu erstellen, die Einstellung zu ändern und Ihre Dateien mit gemischter Schreibweise dann in dieses Verzeichnis zu kopieren.

Fehler: Zugriff verweigert

Stellen Sie sicher, dass Sie für das Verzeichnis über die Berechtigungen „Attribute schreiben“, „Dateien erstellen“, „Ordner erstellen“ und „Unterordner und Dateien löschen“ verfügen. Diese Berechtigungen sind zum Ändern der Einstellung für die Unterscheidung nach Groß-/Kleinschreibung erforderlich. Um diese Einstellungen zu überprüfen, öffnen Sie das Verzeichnis in Windows-Datei-Explorer (verwenden Sie in der Befehlszeile den folgenden Befehl: explorer.exe .). Klicken Sie mit der rechten Maustaste auf das Verzeichnis, wählen Sie Eigenschaften aus, um das Fenster „Dokumenteigenschaften“ zu öffnen, und wählen Sie dann Bearbeiten aus, um die Berechtigungen für das Verzeichnis anzuzeigen oder zu ändern.

Properties windows to view or change permissions on NTFS directories

Fehler: Für diesen Vorgang ist ein lokales NTFS-Volume erforderlich.

Das Attribut für die Unterscheidung nach Groß-/Kleinschreibung kann nur für Verzeichnisse innerhalb eines Dateisystems im NTFS-Format festgelegt werden. Bei Verzeichnissen im WSL-Dateisystem (Linux) wird standardmäßig nach Groß-/Kleinschreibung unterschieden (sie können nicht mit dem Tool „fsutil.exe“ auf Nichtbeachtung der Groß-/Kleinschreibung festgelegt werden).

Zusätzliche Ressourcen