Hallo allerseits!

In der sehr guten Installationsanleitung für Einsteiger ist beim Punkt Spracheinstellung empfohlen, in die /etc/locale.conf einzutragen:
LC_COLLATE=C
Das führt dazu, dass die Sortierung (z.B. bei ls oder in Nautilus) getrennt nach Groß- und Kleinbuchstaben erfolgt. Was ich zumindest als verwirrend empfinde. Wäre es daher nicht besser, dort zu empfehlen:
LC_COLLATE=de_DE.UTF-8
?

Das führt jedenfalls zu einer konventionsgemäßen Sortierung.
Wenn Du LC_COLLATE nicht (auf `C') setzen willst, mußt Du es in der locale.conf nicht extra auf `de_DE.UTF-8' setzen, das wird ja mit `LANG=de_DE.UTF-8' sowieso schon getan; i.e.: wenn Dir die optionale »C-Sortierung« nicht gefällt, laß diese Zeile einfach komplett weg. =)
> Was ich zumindest als verwirrend empfinde.

Problem ist nur, dass es ein paar Programme gibt, die krepieren, wenn eine andere LC_COLLATE-Einstellung verwendet wird. Ich weiß nicht mehr, welche Programme davon betroffen waren (und noch sind), aber meines Wissens gabs einen Grund für die Entscheidung.

Edith sagt: https://bugs.gentoo.org/show_bug.cgi?id=208082
https://mailman.archlinux.org/pipermail/pacman-dev/2011-November/014762.html

→ Lieber auf C lassen und zur Not für die Programme, bei denen es gefahrlos möglich ist, umstellen.
Wie könnte man es denn z.B. nur für Nautilus umstellen?
  • [gelöscht]

Die ganzen Spracheinstellungen sind mir immer wieder ein Buch mit sieben Siegeln, mir sei daher verziehen:

Gibt es das Problem nur in deutscher Sprache? Die von Creshal herausgesuchten Links lassen mich anderes vermuten, auch wenn ich gestehe, nicht alles gelesen zu haben. Dennoch ist in der englischen Installationsanleitung nichts davon erwähnt und ich konnte bisher nie Probleme feststellen (weshalb ich mich damit auch nie wirklich auseinandergesetzt habe).
Wenn die Antwort in den obigen Links zu finden ist, reicht mir ein Arschtritt.
Sortierung unter Linux war und ist eine einzige Katastrophe! Technisch mag das alles Hand und Fuß haben, aber es ist schlicht semantischer Unsinn, wenn zweihunderteinundvierzig (241) vor drei (3) sortiert wird, oder wenn xyz vor ABC steht.

Bei mir ist LC_COLLATE="de_DE.utf8" eingestellt, und ich habe noch nie deswegen mit irgendwelchen Programmen Probleme gehabt.
@Carl:
> Wie könnte man es denn z.B. nur für Nautilus umstellen?

So, wie ich Gnome kenne, gibts da bestimmt einen undokumentierten GConf-Key für. 🙂 Keine Ahnung, ehrlich gesagt. Für Kommandozeilentools wie ls kannst du mit Aliasen arbeiten (»alias ls="LC_COLLATE=de_DE.UTF-8 ls -deine-optionen"« [Achtung, -v lässt ls deine Collation komplett ignorieren]).

@[gelöscht]:
> Gibt es das Problem nur in deutscher Sprache?

Das Problem ist, dass zu viele Programmierer sich nicht um i18n scheren, und noch mehr wissen gar nicht, dass das einen Einfluss auf die Sortierreihenfolge haben kann. Von daher kann das Problem immer auftreten, wenn deine Sprache anders sortiert als von irgendeinem Programmierer erwartet.

Bei den meisten Datenbanken kannst du aus dem Grund auch getrennt eine Collation einstellen, damit es "passt".

@Dirk: Arch hatte bis irgendwann 2011 C-Collation hardcodiert, und im Rahmen der Umstellung alle auffindbaren Bugs behoben. Möglich, dass du da Glück hattest. 🙂
Creshal schrieb@Dirk: Arch hatte bis irgendwann 2011 C-Collation hardcodiert, und im Rahmen der Umstellung alle auffindbaren Bugs behoben. Möglich, dass du da Glück hattest. 🙂
Das war bereits 2009 im November.
https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/filesystem&id=28c77b3d63e70419ac7abfd07fcf93f9afdf6671
https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/filesystem&id=3abefec54257f8891cd888691ac2429fe821f5d6
Und im Dezember kams nach [core] https://www.archlinux.org/news/filesystem-200911-1-and-lc_collate/
Dirk schriebSortierung unter Linux war und ist eine einzige Katastrophe! Technisch mag das alles Hand und Fuß haben, aber es ist schlicht semantischer Unsinn, wenn zweihunderteinundvierzig (241) vor drei (3) sortiert wird, oder wenn xyz vor ABC steht.
....
Irgendwie finde ich mich immer nicht mehr zurecht, wenn anders sortiert wird. o_0
Dirk schriebSortierung unter Linux war und ist eine einzige Katastrophe! Technisch mag das alles Hand und Fuß haben, aber es ist schlicht semantischer Unsinn, wenn zweihunderteinundvierzig (241) vor drei (3) sortiert wird, oder wenn xyz vor ABC steht.

Bei mir ist LC_COLLATE="de_DE.utf8" eingestellt, und ich habe noch nie deswegen mit irgendwelchen Programmen Probleme gehabt.
Danke! Endlich ist die Sortierreihenfolge in /etc halbwegs natürlich.
@Thorsten Reinbold:
[Badesalz] Habb isch doch gesaggt![/Badesalz] ;-)

@all:
Bilanz:

LC_COLLATE=C hatte mal seine Berechtigung, diese besteht aber wohl inzwischen nicht mehr. Was also in der Anleitung machen? Ich sehe 3 Möglichkeiten:

1. Sicherheitshalber LC_COLLATE=C lassen, aber einen Hinweis auf das seltsame Sortierverhalten ergänzen.
2. Ersetzen durch LC_COLLATE=de_DE.utf8 (so habe ich das ohne Probleme bisher)
3. LC_COLLATE ganz weglassen (Scheint ja auch zu funktionieren, habe ich aber zumindest noch nicht getestet.)

Was meint Iht?
  • [gelöscht]

Carl Karl schrieb3. LC_COLLATE ganz weglassen (Scheint ja auch zu funktionieren, habe ich aber zumindest noch nicht getestet.)
Funktioniert, weil dann, wie bei allen anderen LC_*-Variablen, deine Angabe von LANG übernommen wird. LC_* gibst du nur an, wenn du das mit einem anderen Wert explizit überschreiben möchtest. Hast du also schon LANG=de_DE.UTF-8 und möchtest kein C bei LC_COLLATE, kannst du die Zeile ganz weglassen.
Ach so, ich meinte natürlich:
Welche der 3 Möglichkeiten sollte im Wiki stehen? Das sei sicherheitshalber explizit gesagt.
8 Monate später
Danke für die Aufklärung zu LC_COLLATE
Ich denke es wäre gut, in der Installationsanleitung für Einsteiger diesen Eintrag nicht zu setzen aber zu erklären, dass mit ihm die Sortierung verändert werden kann.

So oder so hat mir dieses Thema sehr weitergeholfen.
9 Jahre später

Unix und auch Linux sind case-sensitiv und das ist für Windows gewohnte User oft verwirrend.
Dabei sollte jedem, der mal ein Programm geschrieben hat, klar sein, dass nur die strenge Unterscheidung von Groß- und Kleinschreibung präzise Programme ergibt.
Insbesondere bei regulären Ausdrücken kann es zu fiesen Fehlern kommen, wenn z. B. [a-d] nicht zu [abcd] expandiert wird, sondern zu [aAbBcCdD].
Will man zum Beispiel alle Dateien mit den kleinen Anfangsbuchstaben 'a' bis 'm' löschen, dann kann man nicht "rm [a-m]" schreiben, da dies auch Dateien löscht, die mit Großbuchstaben anfangen. Man muss also "rm [abcdefghjklm]" schreiben, was nicht weder einfach noch übersichtlich ist.
Für mich gehören Großbuchstaben in Listings vor die Kleinbuchstaben - sie bilden eine eigene Gruppe.
Wer seine Dateinamen unreflektiert mal mit Groß- und mal mit Kleinbuchstaben vergibt, für den ist es besser LC_COLLATE nicht auf C zu setzen.

Der Thread is 9 Jahre alt!

Dirk hat die Diskussion geschlossen ().