当您在 bash shell 中执行 ls
时,有时会有颜色表示不同的资源类型,您可以使用 --color
参数启用/控制它。
但是手册页和谷歌都没有提供这个问题的答案:
这些颜色默认表示什么,如何显示当前系统使用的内容?
更新:
到目前为止,感谢大家的回答,但是为了更容易挑选获胜者,任何人都可以更进一步,并提供一种方法来输出他们适用的颜色的描述。
嗯...我的示例在发布时不起作用(仅在预览时),因此如果您预览此代码,它将显示我的意思...
<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
环境变量定义。根据您的发行版,它会在 shell 启动时自动生成,使用 ~/.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
}
https://stackoverflow.com/questions/598107/