Gdzieś po drodze spieprzyłem moje polecenie ls i teraz dostaję tę kolejność podczas uruchamiania
$ ls -AhHl --color=auto
-rwxr-xr-x 1 clang clang 640 Mar 1 02:46 apple-touch-icon-precomposed.png
-rwxr-xr-x 1 clang clang 784 Jul 12 02:54 crossdomain.xml
-rwxr-xr-x 1 clang clang 1.2K Mar 1 02:46 favicon.ico
drwxr-xr-x 8 clang clang 4.0K Jul 12 23:50 .git
-rw-r--r-- 1 clang clang 17 Feb 29 19:48 .gitignore
-rwxr-xr-x 1 clang clang 1.4K Jul 12 02:54 humans.txt
Co takiego zrobiłem, że zignorowałem pliki kropkowe i zamiast tego posortowałem według pierwszej litery?
Wyjście locale
:
$ locale
LANG=
LANGUAGE=
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=en_US.UTF-8
ls
????????
export LC_ALL="C"
do plików dot, skutecznie utracisz wsparcie dla faktycznych ustawień narodowych we wszystkich narzędziach obsługujących ustawienia regionalne. Chociaż problem drukowania wskazany przez @ohho można rozwiązać za pomocą odpowiedzi Faroula , wprowadzisz problemy z sortowaniem : sortowanie nastąpi tylko według wartości bajtów, w wyniku czego w sortowaniu (a) nieoczekiwanie rozróżniana jest wielkość liter i (b) niezmiennie miejsca znaki akcentowane. po wszystkich nieakcentowanych.Aby uniknąć jakichkolwiek zmian systemowych bez rzeczywistej potrzeby, można zmienić tylko sposób działania
ls
bieżącego użytkownika, dodając alias do.bashrc
:Najpierw sortuje pliki kropek, pozwala poprawnie obsługiwać (wyświetlać i sortować) „nietypowe” zestawy znaków, takie jak cyrylica. Jedynym winowajcą, że w sortowaniu rozróżniana jest wielkość liter.
Źródło: http://ubuntuforums.org/showthread.php?t=816753
źródło
LC_ALL
jest już ustawione coś niezgodnego z sortowaniem / podnoszeniem plików dot do góryls
listy, użyjalias ll='LC_ALL=C ls -alF'
zamiast tego, ponieważLC_COLLATE
nie zastępujeLC_ALL
.Oprawa
działa dla mnie dobrze - umlauts, a „ls -la” najpierw wyświetla pliki kropkowe.
źródło
UTF-8
- nie zostaną poprawnie posortowane .C.UTF-8
jest niepoprawnym ustawieniem regionalnym, więc ustawienia powracają doC
. Nadal tracisz obsługę UTF-8. W rzeczywistości jest nawet gorzej, ponieważLC_ALL=C
większość programów wyświetla poprawnie większość znaków wielobajtowych , ale wLC_ALL=something_invalid
niektórych programach nie (np. `Ls).locale
wydaje się , że popełniam błąd przyLC_ALL=C.UTF-8
: gist.github.com/Carpetsmoker/ef09b3734b29372939f97107413d7733 - czyli na Arch Linux.Listy stron podręcznika ls (1):
Wydaje się, że zmienia to sposób sortowania kropek i najpierw grupuje pliki kropkowe. Mam:
w moim ~ / .bashrc.
źródło
Pomysł na ścianę
Bardzo lubię używać różnych metod sortowania
ls
, szczególnie-rt
(które są sortowane wedługr
ee zmodyfikowanycht
ime). Postanowiłem więc spróbować czegoś szalonego i użyć awk do sortowania.Teraz zamiast definiować alias bash, definiuję funkcję bash (ponieważ aliasy mogą dołączać tylko argumenty na końcu, ale funkcje mogą ich używać w dowolnym miejscu)
Aby zobaczyć wyniki
Utwórzmy przykładowe pliki:
Używanie zwykłego ls
Używam mojej funkcji filtrującej za pomocą awk
Moje wdrożenie tego można zobaczyć tutaj https://github.com/RichardBronosky/dotfiles/commit/6170c0a9
Najważniejsze w tym jest to, że jest to struktura do ulepszania twoich
ls
wyników. Możesz zrobić wszystko, co chcesz z tym filtrem awk. Możesz chcieć, aby były to katalogi, następnie pliki dotfiles, a następnie wszystko inne. Gdy już wiesz, jak obsługiwać kolory xterm, nie jest to zbyt trudne. To zależy wyłącznie od Ciebie.źródło
Może spróbuj tego w pliku .bashrc lub / etc / bashrc:
Zakłada się, że korzystasz z nieco nowszej wersji ls, która bierze opcję „--group-directories-first” jako opcję. Możesz oczywiście dostosować opcje LS do swoich upodobań.
źródło
--group-directories-first
ma wspólnego z „najpierw pokaż pliki kropkowe”?