मैक ओएस एक्स पर काम करने के लिए मुझे ls --color = auto कैसे मिलता है?


69

मैं अपने बैश विन्यास को उबंटू से मैक ओएस एक्स में ले जाने की कोशिश कर रहा हूं और ऐसा लग रहा है कि एलएस थोड़ा अलग है। उदाहरण के लिए, यह --colorविकल्प स्वीकार नहीं करेगा ।

मैं इससे कैसे काम लूं?


जवाबों:


78

lsवास्तव में बैश से अलग है। Mac OS X का BSD संस्करण है ls, जिसके लिए वातावरण में -Gकमांड लाइन, या CLICOLOR(और शायद LSCOLORS) की आवश्यकता होती है।

man lsअधिक जानकारी के लिए देखें ।


5
डिट्टो। मैंने alias ls='ls -G'अपने .bashrc में स्नो लेपर्ड पर सेट किया है।
अयज

किसी कारण से, CLICOLOR=Yमेरे मैक पर काम करना बंद कर दिया। रंग भरने के लिए alias ls='ls -G'मजबूर करेगा ls। मैं इसे केवल इंटरैक्टिव टर्मिनलों के लिए परिभाषित करता हूं।
DKroot


10

Homebrew का उपयोग करें ।

brew install coreutils

ध्यान दें कि यह gसभी कमांड्स (जैसे, के glsलिए ls) के सामने एक उपसर्ग फेंक देगा । यह एक फ़ाइल को स्रोत के लिए एक विकल्प देता है जो आपके लिए ये स्वचालित रूप से उर्फ ​​कर देगा।

मुझे यकीन नहीं था कि अगर पूरे एलियास काम करने के बिना उन्हें सीधे स्थापित करने का कोई विकल्प था, तो इसके बजाय MacPorts स्थापित किया और यह किया


1
आउटपुट कहता है: यदि आपको वास्तव में अपने सामान्य नामों के साथ इन कमांड का उपयोग करने की आवश्यकता है, तो आप कर सकते हैं ... यह वास्तव में क्यों जोर देता है ? डाउनसाइड क्या हैं?
z0r

और आपने कभी भी
आर्काइव.ऑर्ग

5

GNU और * BSD / darwin ls के लिए अनुकूलता

~ / .Profile

#for *BSD/darwin
export CLICOLOR=1

ls --color=auto &> /dev/null && alias ls='ls --color=auto' ||

~ / .bashrc (मुझे याद नहीं है कि क्या लिनक्स पर बैश हमेशा पढ़ता है ~ / .profile, लेकिन ARS पर मेरा zsh नहीं)

[[ -f $HOME/.profile ]] && source $HOME/.profile

6
क्या आप इस कोड की व्याख्या कर सकते हैं?
bwDraco

1
* BSD और डार्विन सिस्टम के लिए CLICOLOR पर्यावरण चर स्थापित करना - यदि यह ls और संभवतः अन्य उपयोगिताओं को सेट किया गया है, तो यह रंगीन होगा, लेकिन GNU ls (लिनक्स के लिए) इसे अनदेखा करता है। यदि "ls --color = auto" विफल नहीं होगा (स्थिति से बाहर निकलें = 0) - हमारे पास ls का GNU संस्करण है और इंटरेक्टिव मोड में रंग कोड बनाने के लिए उपनाम बना रहा है, अगर यह विफल हो जाता है - तो हमें CLICOLOR के कारण उपनाम की आवश्यकता नहीं है चर। "&> / dev / null" बस stderr और stdout नहीं दिखाते हैं कि अगर कुछ विफल होता है या यदि यह ठीक है। मेरे linux और osx के लिए काम करता है। (ऑक्स और फ्रीबस पर पीए बैश नहीं पढ़ता है। कैश, इसलिए इसे अंदर डाल दें। पहले से तय किया गया है।
विक्टर गैवरो

2

आपको एक वैकल्पिक संस्करण स्थापित करना होगा ls। आमतौर पर लिनक्स में उपयोग किया जाने वाला एक GNU कोरुटिल्स प्रोजेक्ट से है।

आप macports , fink या homebrew से निर्माण और स्थापित या स्थापित कर सकते हैं ।


4
यह मेरी राय में, overkill है। lsजब उसी सुविधा का मौजूदा संस्करण में थोड़ा अलग समर्थन किया जाता है , तो आपको एक अलग संस्करण स्थापित करने की आवश्यकता नहीं होती है ls
ayaz

अच्छी बात। तो फिर, रंगीन एलएस मेरा स्वाद कभी नहीं रहा है। alias ls='ls -F'
डग हैरिस

alias ls='ls -FG'- यह दोनों दुनिया का सबसे अच्छा है!
मियादी

1
मैं होमब्रे का उपयोग करके ऐसा करता हूं। यदि आप मैक और * निक्स दोनों कंप्यूटरों का उपयोग करते हैं और अपने टर्मिनलों को समान दिखना चाहते हैं तो यह ओवरकिल नहीं है - यह आपको सभी कंप्यूटरों में समान कॉन्फिग फाइलों का उपयोग करने की अनुमति देता है। यह glsमूल रूप से स्थापित है और मूल को प्रतिस्थापित नहीं करता है इसलिए वास्तव में कोई नकारात्मक पहलू नहीं है।
प्रेषक

1

मैं इस पर्ल स्क्रिप्ट का उपयोग करता हूं जिसे मैंने AIX पर लिखा था । यह उपयोगी है यदि आप एक ऐसी प्रणाली पर हैं जो समर्थन नहीं करती है --color, और यह भी कि आपके पास संकुल स्थापित करने के लिए सूडो नहीं है।

Macintosh पर भी काम करना चाहिए।

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