Подсветка папок командой ls
Ответы (1 шт):
согласно $ man dir_colors каталоги в выводе программы ls расцвечиваются только в трёх случаях:
STICKY цвет
Задаёт цвет, используемый для файлов с установленным закрепляющим (sticky) битом.
STICKY_OTHER_WRITABLE цвет
Задаёт цвет, используемый для каталогов с установленным битом sticky
и доступный на запись другим.
Синоним OWT.
OTHER_WRITABLE цвет
Задаёт цвет, используемый для каталогов без установленного бита sticky
и доступный на запись другим.
Синоним OWR.
(я, кстати, исправил в цитате забавную ошибку, которая присутствует и в оригинальной man-странице, и в переводе: в пунктах про STICKY_OTHER_WRITABLE и OTHER_WRITABLE вместо sticky-бита упомянут бит выполнимости).
т.е., в вашем случае расцвечено имя каталога, у которого есть признак OTHER_WRITABLE — каталог доступен для записи всем и не установлен бит sticky.
по умолчанию расцветка должна быть синим шрифтом (42) на зелёном фоне (34):
$ dircolors -p | grep ^OTHER_WRITABLE
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
коды, обозначающие цвета, можно увидеть и в $ man dir_colors и в выводе программы dircolors, запущеной с опцией -p:
$ dircolors -p | grep -A 7 'Below are the color'
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
но вообще на умолчальное поведение программы ls в отношении расцветки имён файлов/каталогов можно повлиять переменной окружения LS_COLORS. формирует её всё та же программа dircolors, обычно запускаемая где-нибудь в инициализационных файлах оболочки. например, в дистрибутиве debian gnu/linux — в ~/.bashrc:
$ grep dircolors ~/.bashrc
eval "`dircolors -b`"
например, после такой подмены имя упомянутого в вопросе каталога будет отображаться (в пределах текущего сеанса оболочки) чёрным шрифтом (30) на белом (или сером) фоне (47):
$ export LS_COLORS=$(echo $LS_COLORS | sed -r 's/ow[^:]+/ow=30;47/')
но, конечно, удобнее править не содержимое переменной окружения, а «исходную базу данных» (которую выдаёт команда dircolors -p): сохраните её в файл и передайте этот файл программе — $ dircolors файл. и она уже сформирует нужное значение для переменной окружения LS_COLORS.
