그래서 디렉토리, 일반 파일, bash 스크립트 등의 텍스트 색상을 변경하는 방법이 있다는 것을 알고 있습니다. 이를 기반으로 파일의 색상을 변경하는 방법이 있습니까 _file extension_
?
예:
$ ls -l
foo.txt [is red]
foo.text [is blue]
foo.secret [is green]
foo.txt [is red]
답변1
예, LS_COLORS
변수를 사용하십시오(GNU 가정 ls
). 이를 조작하는 가장 쉬운 방법은 다음을 사용하는 것입니다 dircolors
.
dircolors --print-database > dircolors.txt
현재 설정을 에 덤프한 dircolors.txt
다음 설정을 추가한 후 편집할 수 있습니다.
eval $(dircolors dircolors.txt)
업데이트되어 LS_COLORS
내보내집니다. 이를 쉘 시작 스크립트에 추가해야 합니다.
제공한 예시 설정을 적용하기 위해 추가할 항목은 dircolors.txt
다음과 같습니다.
.txt 00;31
.text 00;34
.secret 00;32
답변2
이를 달성하는 한 가지 방법(최선의 방법은 아님)은 사용자 정의 셸 함수를 만드는 것입니다.
myls() {
for f in *; do
if [ "${f##*.}" = txt ]; then
printf '\e[1;31m%s\e[0m\n' "$f"
elif [ "${f##*.}" = text ]; then
printf '\e[1;34m%s\e[0m\n' "$f"
elif [ "${f##*.}" = secret ]; then
printf '\e[1;32m%s\e[0m\n' "$f"
else
printf '%s\n' "$f"
fi
done
}
추가 자료: