Partager via


Ajuster la sensibilité de la casse

La sensibilité de la casse détermine si les lettres majuscules (FOO.txt) et minuscules (foo.txt) sont traitées comme distinctes (prenant en compte la casse) ou équivalentes (sans tenir compte de la casse) dans un nom de fichier ou un répertoire.

  • Respect de la casse : FOO.txt ≠ foo.txt ≠ Foo.txt
  • Insensible à la casse : FOO.txt = foo.txt = Foo.txt

Différences de sensibilité à la casse entre Windows et Linux

Lorsque vous utilisez des fichiers et des répertoires sous Linux et Windows, vous devrez peut-être ajuster la façon dont la sensibilité à la casse est gérée.

Comportement standard :

  • Le système de fichiers Windows traite les noms de fichiers et de répertoires comme non sensibles à la casse. FOO.txt et foo.txt seront traités comme des fichiers équivalents.
  • Le système de fichiers Linux traite les noms de fichiers et de répertoires comme sensibles à la casse. FOO.txt et foo.txt seront traités comme des fichiers distincts.

Le système de fichiers Windows prend en charge la définition de la sensibilité à la casse avec des flags d'attribut par répertoire. Bien que le comportement standard soit insensible à la casse, vous pouvez affecter un indicateur d’attribut pour rendre un répertoire sensible à la casse, afin qu’il reconnaisse les fichiers et dossiers Linux qui peuvent différer uniquement par cas.

Cela peut être particulièrement vrai lors du montage de lecteurs sur le système de fichiers Windows Sous-système Linux (WSL). Lorsque vous travaillez dans le système de fichiers WSL, vous exécutez Linux, donc les fichiers et répertoires sont par défaut sensibles à la casse.

Remarque

Dans le passé, si vous aviez des fichiers dont le nom diffère uniquement par cas, ces fichiers ne pouvaient pas être accessibles par Windows, car les applications Windows traitent le système de fichiers comme non sensibles à la casse et ne peuvent pas faire la distinction entre les fichiers dont les noms diffèrent uniquement dans le cas. Alors que l’Explorateur de fichiers Windows affiche les deux fichiers, un seul s’ouvre quel que soit le choix.

Modifier la distinction entre majuscules et minuscules des fichiers et des répertoires

Les étapes suivantes expliquent comment modifier un répertoire sur le système de fichiers Windows afin qu’il respecte la casse et reconnaît les fichiers et dossiers qui diffèrent uniquement par cas.

Avertissement

Certaines applications Windows, en supposant que le système de fichiers est insensible à la casse, n'utilisent pas la casse appropriée pour faire référence à des fichiers. Par exemple, il n’est pas rare que les applications transforment des noms de fichiers pour utiliser tous les majuscules ou minuscules. Dans les répertoires marqués comme respectant la casse, cela signifie que ces applications ne peuvent plus accéder aux fichiers. En outre, si les applications Windows créent de nouveaux répertoires dans une arborescence de répertoires où vous utilisez des fichiers avec sensibilité à la casse, ces répertoires ne sont pas sensibles à la casse. Cela peut compliquer l’utilisation des outils Windows dans les répertoires sensibles à la casse. Faites donc preuve de prudence lors de la modification des paramètres de sensibilité à la casse du système de fichiers Windows.

Inspecter la sensibilité actuelle de la casse

Pour vérifier si un répertoire est sensible à la casse dans le système de fichiers Windows, exécutez la commande :

fsutil.exe file queryCaseSensitiveInfo <path>

Remplacez par <path> le chemin d’accès de votre fichier. Pour un répertoire dans le système de fichiers Windows (NTFS), l’apparence <path> se présente comme suit : C:\Users\user1\case-test ou si vous êtes déjà dans le user1 répertoire, vous pouvez simplement exécuter : fsutil.exe file setCaseSensitiveInfo case-test

Modifier la sensibilité de la casse

La prise en charge de la sensibilité de cas par annuaire a commencé dans Windows 10, build 17107. Dans Windows 10, build 17692, la prise en charge a été mise à jour pour inclure l’inspection et la modification de l’indicateur de confidentialité de cas pour un répertoire à partir de WSL. La sensibilité de la casse est exposée à l’aide d’un attribut étendu nommé system.wsl_case_sensitive. La valeur de cet attribut sera 0 pour les répertoires insensibles à la casse, et 1 pour les répertoires sensibles à la casse.

Changer la sensibilité à la casse d’un répertoire nécessite que vous disposiez de d’autorisations élevées (en tant qu'administrateur). La modification de l’indicateur de sensibilité à la casse nécessite également les autorisations « Attributs d’écriture », « Création de fichiers », « Création de dossiers » et « Suppression de sous-dossiers et de fichiers » sur le répertoire. Pour plus d’informations sur ce problème, consultez la section de résolution des problèmes.

Pour modifier un répertoire dans le système de fichiers Windows afin qu’il respecte la casse (FOO ≠ foo), exécutez PowerShell en tant qu’administrateur et utilisez la commande :

fsutil.exe file setCaseSensitiveInfo <path> enable

Pour changer un répertoire dans le système de fichiers Windows pour revenir à la valeur par défaut insensible à la casse (FOO = foo), exécutez PowerShell en tant qu'administrateur et utilisez la commande :

fsutil.exe file setCaseSensitiveInfo <path> disable

Un répertoire doit être vide pour modifier l’attribut d’indicateur de sensibilité de la casse sur ce répertoire. Vous ne pouvez pas désactiver l’indicateur de sensibilité à la casse sur un répertoire contenant des dossiers/fichiers dont les noms diffèrent uniquement par la casse.

Héritage de la sensibilité à la casse

Lors de la création de nouveaux répertoires, ces répertoires héritent de la sensibilité à la casse de leur répertoire parent.

Avertissement

Il existe une exception à cette stratégie d’héritage lors de l’exécution en mode WSL 1. Lorsqu’une distribution s’exécute en mode WSL 1, l’indicateur de sensibilité à la casse par répertoire n’est pas hérité ; les répertoires créés dans un répertoire sensible à la casse ne sont pas automatiquement sensibles à la casse eux-mêmes. Vous devez explicitement marquer chaque répertoire pour qu'il soit sensible à la casse

Options de sensibilité à la casse pour le montage d’un lecteur dans un fichier de configuration WSL

La sensibilité de la casse peut être gérée lors du montage d’un lecteur sur le sous-système Windows pour Linux à l’aide du fichier de configuration de WSL. Chaque distribution Linux que vous avez installée peut avoir son propre fichier de configuration WSL, appelé /etc/wsl.conf. Pour plus d’informations sur le montage d’un lecteur, consultez Prise en main du montage d’un disque Linux dans WSL 2.

Pour configurer l'option de sensibilité à la casse dans le fichier wsl.conf lors du montage d’un lecteur :

  1. Ouvrez la distribution Linux que vous utiliserez (par exemple. Ubuntu).
  2. Modifiez les répertoires jusqu’à ce que vous voyiez le etc dossier (cela peut vous obliger à monter à cd .. partir du home répertoire).
  3. Répertoriez les fichiers dans le etc répertoire pour voir si un wsl.conf fichier existe déjà (utilisez la ls commande ou explorer.exe . pour afficher le répertoire avec l’Explorateur de fichiers Windows).
  4. Si le wsl.conf fichier n’existe pas déjà, vous pouvez le créer à l’aide de : sudo touch wsl.conf ou en exécutant sudo nano /etc/wsl.conf, ce qui crée le fichier lors de l’enregistrement à partir de l’éditeur Nano.
  5. Les options suivantes sont disponibles pour vous permettre à ajouter à votre fichier wsl.conf :

Paramètre par défaut : off sensibilité à la casse non disponible (tous les répertoires sur les lecteurs NTFS montés seront insensibles à la casse).

[automount]
options = case = off

Activation de la sensibilité de la casse pour chaque répertoire : dir

[automount]
options = case = dir

Traitez tous les répertoires sur le lecteur (NTFS) comme sensible à la casse : force

[automount]
options = case = force

Cette option est uniquement prise en charge pour le montage de lecteurs sur les distributions Linux s’exécutant en tant que WSL 1 et peut nécessiter une clé d’inscription. Pour ajouter une clé d’inscription, vous pouvez utiliser cette commande à partir d’une invite de commandes avec élévation de privilèges (administrateur) : reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\lxss /v DrvFsAllowForceCaseSensitivity /t REG_DWORD /d 1.

Vous devez redémarrer WSL après avoir apporté des modifications au wsl.conf fichier afin que ces modifications prennent effet. Vous pouvez redémarrer WSL à l’aide de la commande : wsl --shutdown

Conseil / Astuce

Pour monter un lecteur (qui utilise le plug-in de système de fichiers DrvFs pour rendre le disque disponible sous /mnt, tel que /mnt/c, /mnt/d, etc.) avec un paramètre de sensibilité spécifique pour tous les lecteurs, utilisez /etc/wsl.conf comme décrit ci-dessus. Pour définir les options de montage par défaut d’un lecteur spécifique, utilisez le /etc/fstab fichier pour spécifier ces options. Pour plus d’options de configuration WSL, consultez Configurer les paramètres de lancement par distribution avec wslconf.

Modification de la sensibilité de la casse sur un lecteur monté sur une distribution WSL

Les lecteurs au format NTFS montés dans une distribution WSL sont insensibles à la casse par défaut. Pour modifier la sensibilité de la casse d’un répertoire sur un lecteur monté sur une distribution WSL (par exemple. Ubuntu), suivez les mêmes étapes que celles répertoriées ci-dessus pour le système de fichiers Windows. (Les lecteurs EXT4 sont sensibles à la casse par défaut).

Pour activer la sensibilité à la casse sur un répertoire (FOO ≠ foo), utilisez la commande :

fsutil.exe file setCaseSensitiveInfo <path> enable

Pour désactiver la sensibilité à la casse sur un répertoire et revenir à la valeur par défaut non sensible à la casse (FOO = foo), utilisez la commande :

fsutil.exe file setCaseSensitiveInfo <path> disable

Remarque

Si vous modifiez l’indicateur sensible à la casse sur un répertoire existant pour un lecteur monté pendant l’exécution de WSL, vérifiez que WSL n’a aucune référence à ce répertoire ou que la modification n’est pas effective. Cela signifie que le répertoire ne doit pas être ouvert par aucun processus WSL, y compris en utilisant le répertoire (ou ses descendants) en tant que répertoire de travail actuel.

Configurer la sensibilité à la casse avec Git

Le système de contrôle de version Git a également un paramètre de configuration qui peut être utilisé pour ajuster la sensibilité de la casse pour les fichiers que vous utilisez. Si vous utilisez Git, vous pouvez ajuster le git config core.ignorecase paramètre.

Pour configurer Git pour qu'il soit sensible à la casse (FOO.txt ≠ foo.txt), entrez :

git config core.ignorecase false

Pour définir Git comme non sensible à la casse (FOO.txt = foo.txt), entrez :

git config core.ignorecase true

Lorsque cette option est définie sur false sur un système de fichiers insensible à la casse, cela peut entraîner des erreurs déroutantes, des faux conflits ou des fichiers en double.

Pour plus d’informations, consultez la documentation Git Config.

Résolution des problèmes

Mon répertoire contient des fichiers en casse mixte nécessitant une sensibilité à la casse, mais les outils du système de fichiers Windows ne reconnaissent pas ces fichiers.

Pour utiliser les outils de système de fichiers Windows pour travailler sur un répertoire Linux qui contient des fichiers de cas mixtes, vous devez créer un tout nouveau répertoire et le définir comme respectant la casse, puis copier les fichiers dans ce répertoire (à l’aide du clone git ou d’untar). Les fichiers restent mixtes. (Notez que si vous avez déjà essayé de déplacer les fichiers vers un répertoire insensible à la casse et qu’il y avait des conflits, il est probable que certains fichiers aient été remplacés et ne soient plus disponibles.)

Erreur : le répertoire n’est pas vide

Vous ne pouvez pas modifier le paramètre de sensibilité à la casse sur un répertoire qui contient d’autres fichiers ou répertoires. Essayez de créer un répertoire, de modifier le paramètre, puis de copier vos fichiers de casse mixte dans celui-ci.

Erreur : Accès refusé

Vérifiez que vous disposez des autorisations « Attributs d’écriture », « Créer des fichiers », « Créer des dossiers » et « Supprimer les sous-dossiers et fichiers » sur le répertoire requis pour modifier la sensibilité à la casse. Pour vérifier ces paramètres, ouvrez le répertoire dans l’Explorateur de fichiers Windows (à partir de la ligne de commande, utilisez la commande : explorer.exe .). Cliquez avec le bouton droit sur le répertoire et sélectionnez Propriétés pour ouvrir la fenêtre Propriétés du document, puis sélectionnez Modifier pour afficher ou modifier les autorisations pour le répertoire.

Fenêtres propriétés pour afficher ou modifier les autorisations sur les répertoires NTFS

Erreur : un volume NTFS local est requis pour cette opération

L’attribut de sensibilité à la casse ne peut être défini que sur des répertoires dans un système de fichiers au format NTFS. Les répertoires dans le système de fichiers WSL (Linux) sont sensibles à la casse par défaut (et ne peuvent pas être définis comme insensibles à la casse à l’aide de l’outil fsutil.exe).

Ressources supplémentaires