tree
그리고 ls
파일 이름을 다르게 색칠하여 파일 형식을 구별할 수 있습니다.
tree
그리고 ls
종종 긴 파일 목록(디렉터리 포함)을 출력하므로 stdout 출력을 less
.
그러나 less
색상은 유지되지 않습니다. 어떻게 색상을 표시할 수 있나요? 아니면 다른 방법이 있나요?
방금 연결된 목록을 보았지만 파이핑 less -R
또는 less -r
작동하지 않습니다. 내 운영 체제는 Ubuntu 12.04입니다. less
버전 444: 2011년 6월 9일.
답변1
나는 당신이 "자동" 모드에서 색상을 사용하도록 ls --color=auto
지시하는 를 사용하고 있다고 가정합니다. ls
"자동" 모드는 ls
STDOUT이 터미널인지 확인하고, 그렇다면 색상을 사용하고, 그렇지 않으면 색상을 사용하지 않음을 알려줍니다. ls
에 파이프를 연결하면 less
STDOUT은 터미널이 아니고 less
일반 파이프인 STDIN에 연결됩니다.
해결 방법 ls --color
은 또는 ls --color=always
.
이제 이는 또 다른 잠재적인 문제로 이어집니다. 귀하의 경우에 따라 less
색상이 표시되지 않고 이스케이프 코드가 표시될 수도 있습니다. 해결책은 를 사용하는 것입니다 less -R
. 이는 less
ANSI 색상 이스케이프에 대한 이스케이프 코드를 전달하도록 알려줍니다. -r
less는 줄 길이를 올바르게 계산할 수 없기 때문에 긴 줄 바꿈에 문제가 발생할 수 있으므로 사용하고 싶지 않습니다 .
이러한 완벽한 솔루션은 다음과 같습니다.
ls --color | less -R
동일 tree
:
tree -C | less -R