Linux
即使設置了 LS_COLORS,ls 命令仍會讀取預設配置
我知道有幾個與此相關的問題,但我無法解決這些問題。
預期的行為:
我想要的是禁用所有著色的東西,只是使目錄洋紅色。換句話說:
--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
應該只讀取這個變數進行著色嗎?
ls
具有多種文件類型的預設顏色,如果您不希望應用它們,則需要覆蓋所有這些顏色。在你的情況下,
eval $(dircolors -p | awk '/^TERM/ { print; next } /^[A-Z]/ { $2 = "00" } /^DIR/ { $2 = "01;35" } /^\./ { next } 1' | dircolors -)
將清除所有預設值並設置目錄的顏色。