如何确定 bash ls 颜色的含义?

发布于 2024-07-14 04:15:27 字数 724 浏览 14 评论 0原文

当您在 bash shell 中执行 ls 时,有时会用颜色来指示不同的资源类型,您可以使用 --color 参数启用/控制它。

但手册页和 Google 都没有提供以下问题的答案:

默认情况下这些颜色表示什么,以及如何显示当前系统使用的内容?


更新:< /em>

感谢大家到目前为止的回答,但是为了更容易地选出获胜者,任何人都可以更进一步并提供一种方法来以它们适用的颜色输出描述。

嗯...我的示例在发布时不起作用(仅在预览时),所以如果您预览此代码,它会显示我的意思...

<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>

谢谢。

When you perform ls in a bash shell, sometimes there are colours to indicate different resource types, and you can enable/control this with the --color argument.

But neither the man page nor Google is providing an answer to the question:

What do these colours indicate by default, and how do I display what the current system uses?


UPDATE:

Thanks everyone for answers so far, however to make it easier to pick a winner, can anyone go a step further and provide a method to output descriptions in the colours they apply to.

Hmmm... my example doesn't work when posted (only when previewed), so if you preview this code it'll show what I mean...

<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>

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

烟花肆意 2024-07-21 04:15:27

颜色由 $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
}

The colors are defined by the $LS_COLORS environment variable. Depending on your distro, it is generated automatically when the shell starts, using ~/.dircolors or /etc/DIR_COLORS.

Edit:

To list color meanings, use this 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
}
┾廆蒐ゝ 2024-07-21 04:15:27

运行命令 dircolors -p 将打印所有默认颜色设置。
请参阅http://linux.about.com/library/cmd/blcmdl1_dircolors.htm

Running the command dircolors -p will print all default colour settings.
See http://linux.about.com/library/cmd/blcmdl1_dircolors.htm.

ぶ宁プ宁ぶ 2024-07-21 04:15:27

您应该能够在 /etc/DIR_COLORS 中看到映射列表。 您可以通过在主目录中创建 .dir_colors 来覆盖它。

You should be able to see the list of mappings in /etc/DIR_COLORS. You can override that by creating .dir_colors in your home directory.

故事灯 2024-07-21 04:15:27

尝试“man 5 dir_colors”以查看它在您的系统上的设置方式。 我的没有 /etc/DIR_COLORS 所以它必须设置在其他地方。

Try "man 5 dir_colors" to see how it's set on your system. Mine doesn't have /etc/DIR_COLORS so it must be set somewhere else.

故笙诉离歌 2024-07-21 04:15:27

Google LS_COLORS 获取一些有用的链接。

编辑:要列出颜色,这个简单的 bash 脚本可能会给出一个想法:

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

Google for LS_COLORS for some useful links.

Edit: To list the colors, this simple bash script may give an idea:

IFS=:
set $LS_COLORS
for C in $*
do
    IFS='='
    set $C
    echo -e "\033[$2m$1\033[00m"
done
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文