问题:我正在尝试修改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
条目,例如*~
,它匹配所有以 . 结尾的文件~
。