मैक ओएस एक्स: dircolors नहीं मिला?


19

मैंने बस मैकबुक एयर पर स्विच किया। मैंने होमब्रे का उपयोग करके 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मैक ओएस एक्स के साथ भेज दिया नहीं? मुझे इसे कैसे स्थापित करना चाहिए?

अपडेट करें:

अगर मैं सीधे मुझे मिलने वाले शेल पर dircolors चलाते हैं:

bash: dircolors; command not found


क्या आप सुनिश्चित हैं कि यह वास्तव में यह कोड है जो त्रुटि का कारण बनता है? केवल dircolors -bसंदिग्ध लगता है, लेकिन मेरे कंप्यूटर पर यह एक ~/.dircolorsफ़ाइल के बिना ठीक काम करता है।
मार्टिन वॉन विटिच

dircolorsबाइनरी मौजूद है और में स्थित है यह देखने के लिए शेल में मैन्युअल रूप से चलाने का प्रयास करें $PATH
मार्टिन वॉन विटिच

क्या त्रुटि वास्तव में है .dircolors was not foundऔर नहीं है dircolors? dircolorsOSX पर कोई कमांड नहीं है जब तक कि आप इसे स्वयं स्थापित न करें, यह लिनक्स के लिए विशिष्ट है (या GNU कोरुटिल्स के लिए अधिक सटीक)।
गिल्स एसओ- बुराई को रोकना '

धन्यवाद @ गिल्स। जब मैं खोल में टाइप dircolorsमैं: bash: dircolors: command not found। ओपी में मैंने जो कोड डाला था, वह स्वचालित रूप से Zsh द्वारा लिनक्स मशीन पर उत्पन्न किया गया था। मुझे लगा कि मैं .zshrcअपने मैक ओएस एक्स से सीधे क्लोन कर सकता हूं । क्या आप जानते हैं कि मेरे ओपी में कोड क्या है या मैक ओएस एक्स के लिए समान कार्यक्षमता लाने के लिए इसे कैसे संशोधित करना है पर कोई सुझाव है?
एमेलियो वाज़केज़-रीना

जवाबों:


15

आदेश dircolorsजीएनयू कोर्यूटिल्स के लिए विशिष्ट है, इसलिए आप इसे गैर-एम्बेडेड लिनक्स और सिग्विन पर पाएंगे, लेकिन ओएसएक्स जैसे अन्य यूनिक्स सिस्टम पर नहीं। आपके द्वारा जनरेट की गई सेटिंग .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
जीएनयू dircolorsके रूप में प्रदान की जाती है gdircolorsद्वारा brewकी coreutilsपैकेज।
m8mble

13

चूंकि FreeBSD के पास कोई कमांड नहीं है dircolorऔर OS X के पास FreeBSD का आधार है आप इसका उपयोग नहीं कर सकते।

सरलतम उपयोग करने के लिए है

export CLICOLOR=YES

अपने .zshrcऔर में .bashrcऔर हटा दें eval "$(dircolors -b)"। रंगों को बदलने के लिए आप पर्यावरण चर का उपयोग कर सकते हैं LSCOLORS। उदाहरण के लिए:

export LSCOLORS="Gxfxcxdxbxegedabagacad"

आप इसके बारे में और अधिक जानकारी प्राप्त कर सकते हैं

man ls

के export CLICOLOR=YESलिए एक उपनाम का उपयोग करने के लिए एक विकल्प हैls

alias ls=ls -G

कुछ ने मैक पोर्ट्स से GNU-Coreutils स्थापित करने का सुझाव दिया, लेकिन मेरी राय में यह ओवरकिल है। आप यहां पोर्ट पा सकते हैं


7

मैं अब पूरे मैक की बात नहीं करता, इसलिए मेरे पास परीक्षण करने के लिए कुछ भी नहीं है, लेकिन FreeBSD पर यह काम पाने की चाह में, मैंने यह पता लगाने में कामयाबी हासिल की कि कैसे यह काम बंदरगाहों से किया जाए। मुझे याद है OSX में सामान है brewऔर macports- यदि आप वास्तव dircolorsमें काम करना चाहते हैं तो इसमें से GNU कोरुटिल्स को स्थापित करने का प्रयास करें । मैं भी के लिए एक उपनाम स्थापित करने के लिए किया था dircolorsके लिए gdircolorsके रूप में यह आदेश है कि FreeBSD बंदरगाहों के रूप में मज़ा स्थापित। जो भी इसे समाप्त करने की कोशिश कर रहा है उसे शुभकामनाएँ!

यहाँ काढ़ा के माध्यम से कोरुटिल्स प्राप्त करने वाले किसी व्यक्ति का लिंक दिया गया है:

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.