bash ls 색상의 의미를 어떻게 결정합니까?
문제
당신이 수행 할 때 ls
배쉬 쉘에서는 때로는 다른 자원 유형을 나타내는 색상이 있으며,이를 통해이를 활성화/제어 할 수 있습니다. --color
논쟁.
그러나 Man Page 나 Google은 다음과 같은 질문에 대한 답을 제공하지 않습니다.
이러한 색상은 기본적으로 무엇을 나타내며, 현재 시스템이 사용하는 것을 어떻게 표시합니까?
업데이트:
지금까지 답변 해 주신 모든 분들께 감사드립니다. 그러나 승자를 쉽게 선택할 수 있도록 누구나 한 걸음 더 나아가서 적용하는 색상의 설명을 출력 할 수있는 방법을 제공 할 수 있습니다.
흠 ... 내 예제는 게시 될 때 작동하지 않으므로 (미리보기 만 할 때만)이 코드를 미리 보면 의미하는 바를 보여줍니다 ...
<ul style="list-style:none; background:black; margin:0;padding:0.5em; width:10em">
<li style="color:blue">directory</li>
<li style="color:aqua">symbolic link</li>
<li style="color:#A00000;">*.tar files</li>
<li style="color:white">...</li>
</ul>
감사.
해결책
색상은 다음으로 정의됩니다 $LS_COLORS
환경 변수. 배포판에 따라 쉘이 시작되면 자동으로 생성됩니다. ~/.dircolors
또는 /etc/DIR_COLORS
.
편집하다:
색상 의미를 나열하려면이 스크립트를 사용하십시오.
eval $(echo "no:global default;fi:normal file;di:directory;ln:symbolic link;pi:named pipe;so:socket;do:door;bd:block device;cd:character device;or:orphan symlink;mi:missing file;su:set uid;sg:set gid;tw:sticky other writable;ow:other writable;st:sticky;ex:executable;"|sed -e 's/:/="/g; s/\;/"\n/g')
{
IFS=:
for i in $LS_COLORS
do
echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m"
done
}
다른 팁
명령을 실행합니다 dircolors -p
모든 기본 색상 설정을 인쇄합니다. 보다 http://linux.about.com/library/cmd/blcmdl1_dircolors.htm.
/etc /dir_colors의 매핑 목록을 볼 수 있어야합니다. 홈 디렉토리에서 .dir_colors를 작성하여이를 무시할 수 있습니다.
"Man 5 Dir_Colors"를 사용하여 시스템에 어떻게 설정되어 있는지 확인하십시오. 광산에는 /etc /dir_colors가 없으므로 다른 곳에 설정해야합니다.
Google을위한 LS_COLORS 유용한 링크의 경우.
편집하다: 색상을 나열하기 위해이 간단한 bash 스크립트는 다음과 같은 아이디어를 줄 수 있습니다.
IFS=:
set $LS_COLORS
for C in $*
do
IFS='='
set $C
echo -e "\033[$2m$1\033[00m"
done