Как раскрыть скрытые файлы в списках файлов `ls`?

Окружающая переменная LS_COLORS позволяет вам выбирать цвета для разных типов файлов для команды ls GNU coreutil, такие как каталоги, обычные файлы, ссылки и т. Д. Я полагаю, что точечные файлы считаются вариацией типов файлов Linux, а не самим типом, нет опций для указания цвета дисплея для них.

Есть ли какой-либо (другой) способ, с помощью которого вы можете сделать списки ls отображать скрытые файлы в другом цвете?

Если вы только сортируете по имени, это может помочь:

 alias ll='LS_COLORS=$LS_COLORS:"di=0;34:" ; S_COLORS=$LS_COLORS:"fi=0;37:" ; export LS_COLORS; ls -dHhl --color=auto .*; LS_COLORS=$LS_COLORS:"di=1;94:" ; LS_COLORS=$LS_COLORS:"fi=1;37:" ; export LS_COLORS$ 

Однако он разделяет команду ls на две части: одну для скрытых файлов и папок, одну для остальных.

Если вы просто хотите выделить скрытые файлы (и папки), и вы не заботитесь о раскраске всех других файлов, тогда очевидный подход – запустить ls -la | grep -E "^| \.[^/|'.].*" ls -la | grep -E "^| \.[^/|'.].*"

Если вы хотите сохранить другие цвета, тогда все становится сложно, потому что $LS_COLORS не поддерживает колорирование скрытых файлов, как кажется.

Я придумал, чтобы динамически добавлять скрытые файлы текущего каталога в переменную $LS_COLORS в качестве псевдо-расширения, а затем выполнить ls -la и после этого запустить dircolors для сброса исходной цветовой схемы. Очевидно, что конфликт будет иметь место, если скрытый файл имеет то же имя, что и известное расширение. Также этот метод не работает со скрытыми папками.

Предупреждение. Это решение является (не очень тщательно проверенным) взломом. Используйте его на свой страх и риск.

for h in $(ls -A | grep "^\."); do LS_COLORS="$LS_COLORS*$h=04;05:"; done; ls -la; eval $(dircolors)