Désordre alphabétique

Bonjour,

Sur ma Debian 11, je constate un phénomène curieux. Soient trois fichiers créés par touch pour cette démonstration que je liste avec ls -l, avec la valeur par défaut de $LANG, i.e. fr_FR.UTF-8 puis avec la valeur C :

$ ls -l
total 0
-rw-r--r-- 1 miko miko 0 24 mai   09:50 1c_p.txt
-rw-r--r-- 1 miko miko 0 24 mai   09:51 1_p.pxt
-rw-r--r-- 1 miko miko 0 24 mai   09:51 1r_p.txt
$ LANG=C ls -l
total 0
-rw-r--r-- 1 miko miko 0 May 24 09:51 1_p.pxt
-rw-r--r-- 1 miko miko 0 May 24 09:50 1c_p.txt
-rw-r--r-- 1 miko miko 0 May 24 09:51 1r_p.txt

L’ordre alphabétique n’est pas le même : _- n’a aucune raison d’être placé entre c et r que je sache. L’ordre varie d’ailleurs avec ce qui suit le _.

Quelqu’un aurait une explication ?

Cordialement.

Il est connu que l’ordre de tri dépend de la locale.

Hypothèse : avec la locale FR, _ est ignoré pour le tri, comme l’espace.

Bonjour,

Je me serai attendu à ce que les effets de la locale se restreignent aux caractères accentués et assimilés.

L’hypothèse de l’ignorance de _ est plausible : 1_a.txt apparaît en tête de liste, puisque 1a précède 1c.
Il n’est même plus question d’ordre dans le cas de cette locale, mais d’algorithme de traitement.
C’est une là une complexité dont je ne comprends guère l’utilité.

Merci.

Je suppose que l’objectif est d’avoir un ordre de tri « naturel » qui est insensible à la casse et ignore les caractères d’espacement.