我的发行版是 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