我知道有几个与此相关的问题,但我无法解决我的问题。
预期行为:
我想要的是禁用所有着色内容并将目录设为洋红色。换句话说:--color=never
+洋红色目录。
目前的行为:
ls
已经读取我的LS_COLORS
环境变量但我还看到目录的绿色背景。看起来这LS_COLORS
只是对默认颜色的覆盖。
到目前为止我做了什么:
- 我编辑了我的
~/.bashrc
文件,LS_COLORS
手动设置并export
编辑它。 - 我注意到这个文件中有一个部分尝试运行
dircolors
程序,以便它设置LS_COLORS
。但由于我自己做,所以我注释掉了:
# enable color support of ls and also add handy aliases
#if [ -x /usr/bin/dircolors ]; then
# test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolor>
# alias ls='ls --color=auto'
# #alias dir='dir --color=auto'
# #alias vdir='vdir --color=auto'
#
# alias grep='grep --color=auto'
# alias fgrep='fgrep --color=auto'
# alias egrep='egrep --color=auto'
#fi
- 我是这样设置的:
LS_COLORS='di=01;35'; export LS_COLORS
alias ls='ls --color=auto'
同样,上面的行有效。如果我更改35
为34
我会看到差异。
但令人烦恼的是我只想要这个颜色而不想要其他的:
不ls
应该只读取这个变量来着色吗?
答案1
ls
具有多种文件类型的默认颜色,如果您不希望应用它们,则需要覆盖所有颜色。
就你而言,
eval $(dircolors -p | awk '/^TERM/ { print; next } /^[A-Z]/ { $2 = "00" } /^DIR/ { $2 = "01;35" } /^\./ { next } 1' | dircolors -)
将清除所有默认值并设置目录颜色。