どのように色が何を意味するかはbashのls決定していますか?
質問
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>
感謝します。
解決
色は$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
}
他のヒント
コマンドdircolors -p
を実行すると、すべてのデフォルトの色設定を表示します。
http://linux.about.com/library/cmd/blcmdl1_dircolors.htm。
あなたは、/ etc / DIR_COLORSにマッピングのリストを見ることができるはずです。あなたのホームディレクトリに.dir_colorsを作成することによって、これをオーバーライドすることができます。
それはあなたのシステムに設定されています方法を確認するには、「man 5 DIR_COLORS」を試してみてください。それはどこか別の場所に設定する必要がありますので、鉱山は、/ etc / DIR_COLORSを持っていません。
Googleのいくつかの有用なリンクのためののLS_COLORSののために。
の編集の色を表示するには、この単純なbashスクリプトがアイデアを与える可能性があります:
IFS=:
set $LS_COLORS
for C in $*
do
IFS='='
set $C
echo -e "\033[$2m$1\033[00m"
done