LS_COLORS를 설정한 후에도 ls 명령은 여전히 ​​기본 구성을 읽습니다.

LS_COLORS를 설정한 후에도 ls 명령은 여전히 ​​기본 구성을 읽습니다.

이와 관련된 몇 가지 질문이 있다는 것을 알고 있지만 문제를 해결할 수 없습니다.

예상되는 동작:
내가 원하는 것은 모든 색상 항목을 비활성화하고 디렉토리를 자홍색으로 만드는 것입니다. 즉, --color=never+magenta 디렉토리입니다.

현재 행동:
lsLS_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 -)

모든 기본값이 지워지고 디렉토리 색상이 설정됩니다.

관련 정보