LS_COLORSを設定した後でも、lsコマンドは依然としてデフォルト設定を読み込みます。

LS_COLORSを設定した後でも、lsコマンドは依然としてデフォルト設定を読み込みます。

これに関連するいくつかの質問があることを知っていますが、問題を解決することはできません。

予想される動作
私が望むのは、すべてのカラーアイテムを無効にし、ディレクトリをフクシアにすることです。つまり、--color=never+magentaディレクトリです。

現在の行動
ls私のLS_COLORS環境変数を読みました。しかし、また、ディレクトリの緑の背景も見えます。これはLS_COLORS基本色をオーバーライドしたようです。

今まで何をしたのか:

  1. ~/.bashrcファイルを編集し、LS_COLORS手動で設定してexport編集しました。
  2. 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
  1. これが私が設定した方法です:
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 -)

すべてのデフォルト値が消去され、ディレクトリの色が設定されます。

関連情報