Где-то по пути я облажался с моей командой ls, и теперь я получаю этот порядок при запуске
$ 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
Что я сделал, что заставило ls игнорировать файлы точек и вместо этого упорядочивать по первой букве?
Выход 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
имена файлов Unicode на иностранных языках (например, на японском языке) будут такими как????????
export LC_ALL="C"
в свои файлы точек, вы фактически потеряете поддержку своей текущей локали во всех утилитах, поддерживающих локали. Хотя проблема печати , на которую указывает @ohho, может быть решена с помощью ответа Фарула , вы будете вводить проблемы с сортировкой : сортировка будет выполняться только по байтовому значению, что приведет к сортировке, которая (а) неожиданно чувствительна к регистру и (б) неизменно помещает акцентированные символы. после всех без акцента.Чтобы избежать любых общесистемных изменений без реальной необходимости, можно изменить только способ
ls
работы текущего пользователя, добавив псевдоним в.bashrc
:Это сначала сортирует файлы точек, позволяет правильно обрабатывать (показывать и сортировать) «необычные» наборы символов, например кириллицу. Единственный виновник, что сортировка будет чувствительна к регистру.
Источник: http://ubuntuforums.org/showthread.php?t=816753
источник
LC_ALL
уже установлено что-то несовместимое с сортировкой / переносом файлов точек в началоls
списка, используйтеalias ll='LC_ALL=C ls -alF'
вместо этого, потомуLC_COLLATE
что не переопределяетLC_ALL
.настройка
у меня работает нормально - сначала умлаутс и "ls -la" перечисляют точечные файлы.
источник
UTF-8
- не будут отсортированы правильно.C.UTF-8
неверная локаль, поэтому локаль возвращается кC
. Вы все еще теряете поддержку UTF-8. На самом деле, это даже хуже, такLC_ALL=C
как большинство программ правильно отображают большинство многобайтовых символов , но вLC_ALL=something_invalid
некоторых программах нет (например, `ls).locale
похоже, ошибка сLC_ALL=C.UTF-8
: gist.github.com/Carpetsmoker/ef09b3734b29372939f97107413d7733 - то есть в Arch Linux.Список man-страниц ls (1):
Кажется, это меняет порядок сортировки периодов и сначала группирует точечные файлы. Я имею:
в моем ~ / .bashrc.
источник
Идея вне стены
Мне действительно нравится использовать различные методы сортировки с
ls
, особенно-rt
(который сортируется поr
измененномуt
ime). Итак, я решил попробовать что-нибудь сумасшедшее и использовать awk для сортировки.Теперь вместо определения псевдонима bash я определяю функцию bash (потому что псевдонимы могут только добавлять аргументы в конце, но функции могут использовать их где угодно)
Чтобы увидеть результаты
Давайте создадим несколько примеров файлов:
Используя обычный ls
Используя мою функцию, которая фильтрует с помощью awk
Вы можете увидеть мою реализацию этого здесь https://github.com/RichardBronosky/dotfiles/commit/6170c0a9
Самое важное в этом то, что это структура для настройки вашего
ls
вывода. С этим фильтром awk вы можете делать все что угодно. Вы могли бы хотеть, чтобы это были каталоги, затем точечные файлы, тогда все остальное. Если вы знаете, как обрабатывать свои цвета xterm, это не так уж сложно. Это полностью зависит от вас.источник
Попробуйте это в вашем файле .bashrc или / etc / bashrc:
Предполагается, что вы используете несколько более новую версию ls, которая принимает опцию --group-directoryies-first. Вы можете явно настроить параметры LS по своему вкусу.
источник
--group-directories-first
имеет к «сначала показывать точечные файлы»?