Linux:在 $LS_COLORS 中创建新类型

Linux:在 $LS_COLORS 中创建新类型

我的发行版是 RHEL。 LS_COLORS 变量由 rs、di、*.tzo 等组成。我想知道如何添加新的扩展类型。

同样,扩展的处理顺序也是如此。如果 di 设置为蓝色,并且我创建一个名为 say zz 的扩展,该扩展通过逻辑来弄清楚“zz”类型意味着什么,那么一个会追随另一个吗?

答案1

您应该使用dircolors来帮助您个性化 所使用的颜色ls

dircolors -p > dircolors.txt

将以或多或少人类可读的形式输出颜色数据库并将其存储在 中dircolors.txt,然后您可以对其进行编辑以调整设置。你会看到“基本文件类型”的一系列颜色设置,分别对应di等等;您可以更改与这些相关的颜色,但不能添加自己的类型。您还将看到文件扩展名(以 开头.)和相应的颜色;您可以在此处添加您自己的扩展。完成后,运行

dircolors dircolors.txt

生成相应的LS_COLORS值,您应该在 shell 的启动脚本中设置该值。扩展的顺序并不重要,因为每个扩展应该只有一种颜色设置。

如果您愿意,您还可以直接存储颜色定义,然后运行

eval $(dircolors -b /path/to/dircolors.txt)

在您的启动脚本中。 (如果您使用这种方法,将颜色存储在 中可能更有意义~/.dircolors。)

答案2

为了扩展我上面的评论,您可以/etc/DIR_COLORS在您的主目录中创建一个文件,也许~/.dir_color,然后在您的.bashrc文件中(假设您使用的是 bash),您可以添加:

if [[ -e "${HOME}/.dir_colors" ]]; then
    eval "$(dircolors -b ${HOME}/.dir_colors)"
fi

这将根据 中的配置设置 LS_COLORS .dir_colors。您可以~/.dir_colors随心所欲地进行调整。如果您更改它,您将需要重新配置您的.bashrc

. ~/.bashrc

相关内容