Wie liste ich zuerst Ordner mit Unterstrichen auf?

23

Wie so ziemlich jeder, bevor ich Ubuntu benutzte, benutzte ich einen Windows-Rechner, und eines der Dinge, an die ich mich in Windows gewöhnt hatte, war, den Unterstrich als erstes Zeichen eines Ordnernamens als eine Art Sondermarkierung zu verwenden, damit es so war erscheinen zuerst in der Auflistung, sowohl in der Befehlszeile als auch im Datei-Explorer.

In meinem eBook-Ordner (in Windows) sieht das beispielsweise so aus:

_read
      Book1.pdf
      Book2.pdf
_reading
      Book3.pdf
Book4.pdf
Book5.pdf

aber in Ubuntus Nautilus sieht es so aus:

Book4.pdf
Book5.pdf    
_read
      Book1.pdf
      Book2.pdf
_reading
      Book3.pdf

Was passiert ist, dass es den Unterstrich komplett ignoriert und "_read" als "read" behandelt und es daher nicht wie gewünscht als erstes auflistet.

Ich habe versucht, die Umgebungsvariable LC_COLLATE auf C zu setzen. Das hilft irgendwie, da es den Unterstrich zusammen auflistet, aber am Ende und nicht am Anfang.

Vielen Dank.

nunos
quelle
Kannst du einen Screenshot hinzufügen?
Philshem
Mögliches Duplikat von askubuntu.com/questions/115741/…, obwohl ich denke, dass die Antwort von @ maggotbrain besser ist als die dort präsentierte.
Rudivonstaden

Antworten:

16

Da Sie das aktuell verwendete Gebietsschema nicht angegeben haben, wird bei dieser Lösung davon ausgegangen, dass Sie es en_US.UTF-8als Standard verwenden.

Sie können dies überprüfen, indem Sie den Befehl localeüber die Befehlszeile ausführen ( Ctrl+ Alt+ t).

Beispielsweise:

~ $ locale
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Die Variable, die die Sortierreihenfolge von Dateien beeinflusst, heißt LC_COLLATE .

Laut den Ubuntu-Hilfeseiten bestimmt die Variable LC_COLLATE, wie Strings (Dateinamen ...) alphabetisch sortiert werden. Die Verwendung des Gebietsschemas "C" oder "POSIX" führt hier möglicherweise zu einer strcmp () -ähnlichen Sortierreihenfolge Sprachspezifische Ländereinstellungen vorzuziehen. "

Die Sortierreihenfolge müssen gewechselt werden , LC_COLLATE="en_US.UTF-8"zu LC_COLLATE=C.

Geben Sie in der Befehlszeile ( Ctrl+ Alt+ t) Folgendes ein:

update-locale LC_COLLATE=C

Wichtig: Sie müssen sich von Ihrem System abmelden und dann erneut anmelden, damit die Änderungen wirksam werden .

Wenn Sie den localeBefehl erneut ausführen , sollte dies anzeigen, dass die LC_COLLATEVariable erfolgreich geändert wurde. Das ls -lerneute Ausführen des Befehls sollte diese Änderung widerspiegeln.

Kevin Bowen
quelle
1
Ich habe LC_COLLATE bereits auf C gesetzt, wie ich im letzten Absatz meiner Frage beschrieben habe. Trotzdem erhalte ich sowohl im Terminal als auch im Nautilus Explorer unterschiedliche Ergebnisse und habe den Computer in der Zwischenzeit neu gestartet. Irgendeine Idee, warum das passiert?
Nunos
@nunos Haben Sie Aliase für lsin Ihrem festgelegt .bashrc?
Kevin Bowen
@nunos Interessant. Auf welchem ​​Dateisystemtyp überprüfen Sie dies? Der einzige Ort, an dem ich Probleme beim ls -lSortieren habe, ist ein mit ntfs formatiertes Laufwerk, das die Variable LC_COLLATE anscheinend nicht berücksichtigt. Alle meine ext3-Dateisysteme scheinen diese Einstellung mit dem Befehl ls sowie in Thunar und Nautilus zu berücksichtigen.
Kevin Bowen
das könnte dann sehr wohl das problem sein. Ich benutze den ls -lBefehl auf einem NTFS-Laufwerk, da ich einen Dual-Boot mit Windows habe.
Nunos
2
update-locale LC_COLLATE=Chilft nicht, Ordner mit Unterstrichen am Anfang einer sortierten Liste zu erhalten, wenn Sie am Anfang Ihrer Ordnernamen Großbuchstaben verwenden!
Malisokan
1

caja (und ich denke Nautilus davor) hat eine Option in den Einstellungen, um Ordner vor Dateien zu sortieren. Würde das helfen?

Desconocido
quelle