Mac OS X : dircolor를 찾을 수 없습니까?


19

방금 Macbook Air로 전환했습니다. homebrew를 사용하여 zsh를 설치했지만 (원래에있는) 코드 중 일부를 사용 .zshrc하면 오류가 발생합니다 .dircolors was not found.

다음은 문제의 코드입니다.

zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
eval "$(dircolors -b)"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true

zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'

되어 dircolors맥 OS X와 함께 제공되지? 어떻게 설치해야합니까?

최신 정보:

쉘에서 dircolors를 직접 실행하면 다음과 같은 결과를 얻습니다.

bash: dircolors; command not found


실제로이 코드가 오류를 일으키는 지 확인 하시겠습니까? 만은 dircolors -b의심스러운,하지만 내 컴퓨터에가없이 작동 ~/.dircolors파일 잘.
Martin von Wittich

dircolors바이너리가 존재하고에 위치하는지 확인하려면 쉘에서 수동으로 실행 하십시오 $PATH.
Martin von Wittich

오류가 정말 .dircolors was not found대해하지 dircolors? dircolorsOSX에 직접 설치하지 않는 한 OSX 에는 명령 이 없습니다. Linux에만 해당됩니다 (보다 정확하게 GNU coreutils에 해당).
Gilles 'SO- 악마 그만'

감사합니다 @Gilles. 내가 쉘에 입력 할 때 dircolors내가 얻을 : bash: dircolors: command not found. 내가 OP에 게시 한 코드는 Linux 시스템에서 Zsh에 의해 자동으로 생성되었습니다. .zshrcMac OS X에 직접 복제 할 수 있다고 생각했습니다 . Mac OS X에 동등한 기능을 제공하기 위해 OP의 코드가 무엇을하는지 또는 수정하는 방법에 대한 제안 사항이 있습니까?
Amelio Vazquez-Reina

답변:


15

이 명령 dircolors은 GNU coreutils에만 적용되므로 내장되지 않은 Linux 및 Cygwin에서는 찾을 수 있지만 OSX와 같은 다른 유닉스 시스템에서는 찾을 수 없습니다. 생성 된 설정은 .zshrcOSX로 이식 할 수 없습니다.

기본 색상을 사용하고 있으므로 빈 문자열을에 전달하여 list-colors파일 완성 색상을 얻을 수 있습니다.

실제 ls명령을 사용한 색상의 경우 CLICOLOROSX 에서 환경 변수를 설정 LSCOLORS하고 색상을 변경하려는 경우 설정 (형식 매뉴얼 참조)하십시오.

if whence dircolors >/dev/null; then
  eval "$(dircolors -b)"
  zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
  alias ls='ls --color'
else
  export CLICOLOR=1
  zstyle ':completion:*:default' list-colors ''
fi

당신이 (비 기본 색상을 설정하고 싶다면 dircolors파일 인수), 내 추천은 하드 코드의 출력이 될 것입니다 dircolors -b ~/.dircolors당신에 .zshrc와 zsh을하고 GNU의 LS 모두에 대해이 설정을 사용합니다.

LS_COLORS=…
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
if whence dircolors >/dev/null; then
  export LS_COLORS
  alias ls='ls --color'
else
  export CLICOLOR=1
  LSCOLORS=…
fi

3
GNU가 dircolors제공됩니다 gdircolorsbrewcoreutils패키지로 제공된다.
m8mble

13

FreeBSD에는 명령이없고 dircolorOS X에는 FreeBSD의 기초가 있으므로 사용할 수 없습니다.

가장 간단한 것은 사용하는 것입니다

export CLICOLOR=YES

귀하의 .zshrc.bashrc제거 eval "$(dircolors -b)"합니다. 색상을 변경하려면 환경 변수를 사용할 수 있습니다 LSCOLORS. 예를 들면 다음과 같습니다.

export LSCOLORS="Gxfxcxdxbxegedabagacad"

맨 페이지에서 자세한 내용을 확인할 수 있습니다.

man ls

에 대한 export CLICOLOR=YES별명을 사용 하는 것의 대안ls

alias ls=ls -G

일부는 Mac Ports에서 GNU-Coreutils를 설치하도록 제안했지만 제 생각에는 이것은 지나친 것입니다. 여기서 포트를 찾을 수 있습니다


7

더 이상 Mac 전체를 수행하지 않으므로 테스트 할 것이 없지만 FreeBSD 에서이 작업을 수행하기 위해 포트 에서이 작업을 수행하는 방법을 알아 냈습니다. 나는 OSX가 같은 물건을 가지고 기억 brew하고 macports당신이 정말로 원하는 경우이에서 GNU의로 coreutils를 설치하십시오 - dircolors작업에. 또한 별칭을 설정했다 dircolors으로 gdircolors이 FreeBSD 포트는 같은 재미를 설치하는 명령 때문이다. 이것을 시도하는 사람에게 행운을 빕니다!

brew를 통해 coreutils를 다운받는 사람에 대한 링크는 다음과 같습니다.

http://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.