--color 옵션을 사용해도 tree(1) 색상이 watch(1)에서 올바르게 해석되지 않습니다.

--color 옵션을 사용해도 tree(1) 색상이 watch(1)에서 올바르게 해석되지 않습니다.

저는 파일 시스템의 변경 사항을 "감시"하기 위해 watch 및 tree 명령의 간단한 조합을 사용하고 있습니다.
색상을 갖고 싶은데 구할 수가 없어서요.

내가 생각하기에 효과가 있다고 생각하는 것은 다음과 같습니다. watch --color 'tree -C'색상을 제공하기 때문에 효과가 있지만 그 자체와 동일하지는 않습니다 tree -C.

다음은 몇 가지 스크린샷입니다.
시계-컬러 'Tree-C'출력, 일부 색상 적용
'트리-C' 시청하기트리가 실제로 모든 이스케이프 코드를 보냈음을 보여주는 출력
트리-C출력, 예상 결과

범인은 내 환경 변수에 있을 수도 있지만 만약 그것이 나라면 watch 'echo $LS_COLORS'내 conf가 거기에 있을 것입니다.

어떤 아이디어가 있나요? :)

답변1

기본적인 질문은watch그리고tree색상을 얻으려면 다른 정보를 사용하십시오.

  • 이것watch비디오 속성을 지정하기 위한 프로그램 해석 표준(ECMA-48) 이스케이프 시퀀스입니다. 이것은 의미한다8색상, 볼드체, 플래시, 밑줄, 반전 및 이탤릭체. (n)저주를 사용하여 정보를 표시하므로 결과가 터미널 데이터베이스에 따라 달라집니다.

  • 이것treeGNU를 모방한 프로그램ls, 사용LS_COLORS환경 변수. 이는 다음을 사용합니다.TERM터미널 데이터베이스의 설명과 반드시 ​​관련이 없는 사용자 정의 이스케이프 시퀀스 세트를 선택하기 위한 환경 변수(curses 및 대부분의 다른 터미널 응용 프로그램에서 터미널 데이터베이스의 항목을 식별하는 데 사용됨)입니다.

일부 작업을 통해 예를 들어 적합한 결과를 생성하여 이러한 일치를 만들 수 있습니다.LS_COLORS특정 터미널 항목에 대해. 분명히 아무도 이것을하지 않았습니다. 그리고 내용 때문에LS_COLORS불완전함(터미널 설명의 작은 부분만 다룸: 기능 키 없음, 커서 이동 없음, 다용성 없음), 시작할 필요 없음LS_COLORS.

만약에tree256색을 사용하여watch코드를 이해하지 못할 수 있음(최근 변경 사항으로 procps 관련 일부 문제가 해결됨)top하지만 아직 적응이 안 됐어요watch- 잠시만 기다려주세요.) watch(n)curses를 사용하여 화면을 관리하세요.watch) 이스케이프 코드를 저주 호출로 변환합니다.

추가 자료:

관련 정보