जवाबों:
MacOS पर, ls
GNU नहीं है ls
और यह --color=always
विकल्प स्वीकार नहीं करता है कि लिनक्स उपयोगकर्ता इस कार्यक्षमता के लिए उम्मीद कर सकते हैं।
के macOS संस्करण में ls
, रंगों को दो चर द्वारा नियंत्रित किया जाता है : $CLICOLOR
और $CLICOLOR_FORCE
। यदि पूर्व को परिभाषित किया गया है, तो $TERM
रंग द्वारा समर्थित टर्मिनल , और आउटपुट टर्मिनल के लिए है, तो यह आउटपुट जीएनयू के --color=auto
विकल्प की तरह रंगीन होगा । यदि बाद वाले चर को भी परिभाषित किया जाता है, तो अंतिम स्थिति को गिरा दिया जाता है, जैसे कि 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
रंग के रूप में अच्छी तरह से सक्रिय करने का विकल्प है, लेकिन मुझे यकीन है कि यह कैसे एक पाइप लाइन में बर्ताव करता है नहीं कर रहा हूँ।