web-dev-qa-db-ja.com

bash lsの色の意味をどのように判断しますか?

Bashシェルでlsを実行すると、さまざまなリソースタイプを示す色が表示される場合があり、--color引数を使用してこれを有効化/制御できます。

しかし、manページも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>

ありがとう。

36
Peter Boughton

色は$LS_COLORS環境変数によって定義されます。ディストリビューションによっては、シェルの起動時に~/.dircolorsまたは/etc/DIR_COLORSを使用して自動的に生成されます。

編集:

色の意味を一覧表示するには、次のスクリプトを使用します。

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
}
46
Juliano

コマンドdircolors -pを実行すると、すべてのデフォルトの色設定が印刷されます。 http://linux.about.com/library/cmd/blcmdl1_dircolors.htm を参照してください。

18
Mark Davidson

/ etc/DIR_COLORSでマッピングのリストを確認できるはずです。ホームディレクトリに.dir_colorsを作成することで、これを上書きできます。

3
chris

「man 5 dir_colors」を試して、システムでの設定を確認してください。鉱山には/ etc/DIR_COLORSがないため、別の場所に設定する必要があります。

3
Paul Tomblin

Google for LS_COLORSいくつかの便利なリンク。

編集:色をリストするために、この単純なbashスクリプトはアイデアを与えるかもしれません:

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