Jak najpierw wyświetlić listę folderów z podkreśleniami?

23

Tak jak prawie wszyscy, przed użyciem Ubuntu korzystałem z komputera z systemem Windows, a jedną z rzeczy, do których przywykłem w systemie Windows, było użycie podkreślenia jako pierwszego znaku nazwy folderu jako specjalnego znaku, aby był to pojawiają się jako pierwsze na liście, zarówno w linii poleceń, jak i eksploratorze plików.

Na przykład w moim folderze eBooków (w systemie Windows) wygląda mniej więcej tak:

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

ale w Nautilus Ubuntu wygląda to tak:

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

Dzieje się tak, ponieważ całkowicie ignoruje podkreślenie i traktuje słowo „_read” jako „przeczytane”, a zatem nie umieszcza go w pierwszej kolejności zgodnie z życzeniem.

Próbowałem ustawić zmienną środowiskową LC_COLLATE na C. To pomaga w jakiś sposób, ponieważ zawiera listę podkreślników razem, ale na końcu, a nie na początku.

Dzięki.

nunos
źródło
czy możesz dołączyć zrzut ekranu?
philshem
Możliwy duplikat askubuntu.com/questions/115741/... chociaż myślę, że odpowiedź @ maggotbrain jest lepsza niż ta tam przedstawiona.
rudivonstaden

Odpowiedzi:

16

Ponieważ nie określono ustawień regionalnych, których obecnie używasz, w tym rozwiązaniu założono, że używasz en_US.UTF-8ustawień domyślnych.

Możesz to sprawdzić, uruchamiając polecenie locale z wiersza poleceń ( Ctrl+ Alt+ t).

Na przykład:

~ $ 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=

Zmienna wpływająca na kolejność sortowania plików nosi nazwę LC_COLLATE .

Według stron pomocy Ubuntu zmienna LC_COLLATE określa „W jaki sposób ciągi (nazwy plików ...) są sortowane alfabetycznie. Użycie ustawień regionalnych„ C ”lub„ POSIX ”powoduje tutaj porządek sortowania podobny do strcmp (), który może być lepsze niż ustawienia regionalne specyficzne dla języka ”.

Kolejność sortowania będzie musiała zostać zmieniona z LC_COLLATE="en_US.UTF-8" na LC_COLLATE=C.

W wierszu polecenia ( Ctrl+ Alt+ t) wpisz:

update-locale LC_COLLATE=C

Ważne: Musisz wylogować się z systemu, a następnie zalogować się ponownie, aby zmiany odniosły skutek .

localePonowne uruchomienie polecenia powinno pokazać, że LC_COLLATEzmienna została pomyślnie zmieniona. ls -lPonowne uruchomienie polecenia powinno odzwierciedlać tę zmianę.

Kevin Bowen
źródło
1
Ustawiłem już LC_COLLATE na C, jak opisałem w ostatnim akapicie mojego pytania. Mimo to otrzymuję różne wyniki zarówno w terminalu, jak i nautilus explorer, a tymczasem ponownie uruchomiłem komputer. Wiesz, dlaczego tak się dzieje?
nunos
@nunos masz żadnych aliasów ustawiony lsw twojej .bashrc?
Kevin Bowen,
@nunos Ciekawe. Na jakim typie systemu plików to sprawdzasz? Jedyne miejsce, w którym mam problemy z ls -lsortowaniem, to dysk sformatowany w NTFS, który nie wydaje się honorować zmiennej LC_COLLATE. Wszystkie moje systemy plików ext3 wydają się przestrzegać tego ustawienia za pomocą polecenia ls, a także w Thunar i Nautilus.
Kevin Bowen
to może być problem. Korzystam z ls -lpolecenia na dysku NTFS, ponieważ mam podwójny rozruch z systemem Windows.
nunos
2
update-locale LC_COLLATE=Cnie pomaga uzyskać folderów z podkreśleniami na górze posortowanej listy, jeśli używasz wielkich liter na początku nazw folderów!
malisokan
1

caja (i myślę, że Nautilus wcześniej) ma w Preferencjach opcję sortowania folderów przed plikami. Czy to pomogłoby?

desconocido
źródło