⚠️ Diese Antwort ist etwas veraltet. Bitte sehen Sie sich die anderen Antworten an, insbesondere diejenigen, die Aliase oder ls -v
verwenden .
Versuchen Sie,
hinzuzufügenexport LC_COLLATE="C"
in Ihren Punktdateien, oder ändern Sie die LC_ALL
Zuordnung zu:
export LC_ALL="C"
Dies steuert die Art und Weise, wie das Sortieren auf Zeichenebene funktioniert – während die Standardeinstellung darin besteht, Punktdateien inline zu sortieren, ergibt dies sort
dotfiles zuerst auflisten.
Beachten Sie jedoch, dass dies die Unterstützung für Ihr aktuelles Gebietsschema in allen gebietsschemaabhängigen Dienstprogrammen im Grunde beenden wird.
Um weiter zu gehen, zitieren Sie das GNU Coreutils-Handbuch (Hervorhebung von mir):
Wenn Sie eine Nicht-POSIX-Locale verwenden (z. B. durch Setzen von LC_ALL
bis en_US
), dann kann sort eine anders sortierte Ausgabe erzeugen als Sie es gewohnt sind.
Setzen Sie in diesem Fall den LC_ALL
Umgebungsvariable auf C
. Beachten Sie, dass die Einstellung nur LC_COLLATE
ist hat zwei Probleme. Erstens ist es unwirksam, wenn LC_ALL
ist auch eingestellt. Zweitens hat es ein undefiniertes Verhalten, wenn LC_CTYPE
(oder LANG
, falls LC_CTYPE
nicht gesetzt ist) auf einen inkompatiblen Wert gesetzt ist. Beispielsweise erhalten Sie undefiniertes Verhalten, wenn LC_CTYPE
ist ja_JP.PCK
aber LC_COLLATE
ist en_US.UTF-8
.
Um systemweite Änderungen ohne wirkliche Notwendigkeit zu vermeiden, kann man nur die Art und Weise ändern, wie ls
funktioniert für den aktuellen Benutzer, indem der Alias zu .bashrc
hinzugefügt wird :
alias ll='LC_COLLATE=C ls -alF'
Dies sortiert zuerst Punktdateien und ermöglicht es, "ungewöhnliche" Zeichensätze wie Kyrillisch richtig zu handhaben (zeigen und sortieren). Der einzige Schuldige ist, dass bei der Sortierung die Groß- und Kleinschreibung beachtet wird.
Quelle:http://ubuntuforums.org/showthread.php?t=816753
Die ls(1)-Manpage listet auf:
-v Natürliche Art von (Versions-)Nummern im Text
Dies scheint zu ändern, wie Perioden sortiert werden, und gruppiert zuerst Punktdateien. Ich habe:
alias ls='ls -vAF'
alias ll='ls -l'
in meinem ~/.bashrc.