답변:
macOS에서은 ls
GNU ls
가 아니며 --color=always
Linux 사용자가이 기능에 대해 기대할 수 있는 옵션을 허용하지 않습니다 .
의 맥 OS 버전에서는 ls
, 색에 의해 제어되는 두 변수 : $CLICOLOR
와 $CLICOLOR_FORCE
. 전자가 정의되고 지정된 터미널이 $TERM
색상 을 지원하고 출력이 터미널 인 경우이 --color=auto
옵션 은 GNU의 옵션 과 매우 유사하게 색상이 지정됩니다 . 후자의 변수도 정의되면, 최종 조건은 삭제되고 GNU의 것처럼 작동 --color=always
합니다.
색상을에 전달 sed
하려면 다음과 같은 것이 필요합니다.
CLICOLOR_FORCE=1 ls -la | sed -En '/Desktop/q;p'
-G
은 다음과 같이 정의하는 것과 같으 $CLICOLOR
므로 충분하지 않습니다
맹목적으로 많은 배포판에에 대한 별칭이 있다고 생각 ls
합니다 ls --color=auto
. ls -la --color=always | sed …
작동해야합니다.
(이 auto
설정은 광범위하게 말해서 ls
출력이 디스플레이로 전달되는지 여부와 디스플레이 색상 만 검사합니다. 그 이유는 색상이 이스케이프 시퀀스, 즉 보이지 않는 명령 문자로 구현되어 프로그램이 혼동 될 수 있기 때문입니다. 파일 이름의 일부에 대해서는
ls
에는-G
색상을 활성화 하는 옵션도 있지만 파이프 라인에서 어떻게 작동하는지 잘 모르겠습니다.