Подтвердить что ты не робот

Как вы определяете, что означают цвета bash ls?

Когда вы выполняете ls в оболочке bash, иногда есть цвета, указывающие разные типы ресурсов, и вы можете включить/управлять им с помощью аргумента --color.

Но ни страница руководства, ни Google не дают ответа на вопрос:

Что показывают эти цвета по умолчанию, и как мне отображать, что использует текущая система?


UPDATE:

Спасибо всем за ответы до сих пор, однако, чтобы облегчить выбор победителя, можно пойти дальше и предоставить метод вывода описаний в цветах, к которым они применяются.

Хммм... мой пример не работает при публикации (только при предварительном просмотре), поэтому, если вы просматриваете этот код, он покажет, что я имею в виду...

<ul style="list-style:none; background:black; margin:0;padding:0.5em; width:10em">
  <li style="color:blue">directory</li>
  <li style="color:aqua">symbolic link</li>
  <li style="color:#A00000;">*.tar files</li>
  <li style="color:white">...</li>
</ul>

Спасибо.

4b9b3361

Ответ 1

Цвета определяются переменной среды $LS_COLORS. В зависимости от вашего дистрибутива он генерируется автоматически при запуске оболочки с использованием ~/.dircolors или /etc/DIR_COLORS.

Edit:

Чтобы перечислить значения цвета, используйте этот script:

eval $(echo "no:global default;fi:normal file;di:directory;ln:symbolic link;pi:named pipe;so:socket;do:door;bd:block device;cd:character device;or:orphan symlink;mi:missing file;su:set uid;sg:set gid;tw:sticky other writable;ow:other writable;st:sticky;ex:executable;"|sed -e 's/:/="/g; s/\;/"\n/g')
{
  IFS=:
  for i in $LS_COLORS
  do
    echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m"
  done
}

Ответ 3

Вы должны иметь возможность видеть список отображений в /etc/DIR _COLORS. Вы можете переопределить это, создав .dir_colors в своем домашнем каталоге.

Ответ 4

Попробуйте "man 5 dir_colors", чтобы узнать, как он установлен в вашей системе. У моей шахты нет /etc/DIR _COLORS, поэтому ее нужно установить где-то еще.

Ответ 5

Google для LS_COLORS для некоторых полезных ссылок.

Изменить: Чтобы отобразить цвета, этот простой bash script может дать представление:

IFS=:
set $LS_COLORS
for C in $*
do
    IFS='='
    set $C
    echo -e "\033[$2m$1\033[00m"
done