태그 보관물: coreutils

coreutils

Mac OS X : dircolor를 찾을 수 없습니까? 사용 .zshrc하면

방금 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은 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


답변

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를 설치하도록 제안했지만 제 생각에는 이것은 지나친 것입니다. 여기서 포트를 찾을 수 있습니다


답변

더 이상 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/


답변