使用“LS_COLOR”使 ls 灰显以波形符 (`~`) 结尾的文件

使用“LS_COLOR”使 ls 灰显以波形符 (`~`) 结尾的文件

问题:我正在尝试修改LS_COLORS以灰显所有以波浪号字符结尾的文件。

问题:有人能发现我的错误吗?

这是我所做的:

# write dircolors file:
dircolors -p > ~/.dircolors

# add a line
echo >> ~/.dircolors
echo ".*~ 01;34" >> ~/.dircolors

# apply changes to LS_COLOR
eval "$(dircolors -b ~/.dircolors)"

现在,当我这样做时

echo $LS_COLORS

我收到一条长行,其开始和结束如下:

rs=0:di=01;34:ln=01;36: ... *.xspf=00;36:*.*~=01;34:

因此,我假设以波形符 ( ~) 结尾的文件与目录(由 指定)显示的颜色相同di,但它不起作用。

答案1

看来你不能用 来做到这一点dircolors,但你可以通过LS_COLORS直接修改来做到这一点:

eval "$(dircolors)"
LS_COLORS="${LS_COLORS}*~=01;34:"
export LS_COLORS

dircolors似乎只处理三种类型的描述符:终端名称(以 开头TERM)、文件类型(例如 DIR),以及以 . 开头的扩展名.。后者通过添加前缀*;来扩展。所以你的.*~就变成了*.*~,它只匹配包含..ls本身可以解释更一般的LS_COLORS条目,例如*~,它匹配所有以 . 结尾的文件~

相关内容