कम से पाइपिंग के बाद बैश में रंग?


106

जब मैंने dircolors को परिभाषित किया है तो जीवन भरा हुआ है ... रंग।

जब मैं पाइप lsके माध्यम से lessचारों ओर स्क्रॉल करने के लिए मैं रंग खो देते हैं।

कोई सुझाव?

जवाबों:


105

सबसे अधिक संभावना lsयह है कि आपके द्वारा इसका उपयोग ls --color=autoकिया जाता है , जो lsकेवल रंगों का उपयोग करने के लिए कहता है, जब इसका आउटपुट ट्टी होता है। यदि आप करते हैं ls --color(जो नैतिक रूप से समतुल्य है ls --color=always), तो यह रंगों को चालू करने के लिए मजबूर करेगा।

आप ऐसा करने के लिए अपना उपनाम भी बदल सकते हैं, लेकिन मैं वास्तव में इसे एक अच्छा विचार नहीं कहूंगा। के साथ एक अलग उपनाम बनाने के लिए बेहतर है --color

lessजरूरत है -R, भी।


5
तुम क्यों नहीं यह एक अच्छा विचार उर्फ करने के लिए कहेंगे ls ls --colorया ls --color=always, उस बात के लिए?
०३:०५

10
अगर आप कलर को हैंडल नहीं करते हैं, तो आप junk टाइप कर सकते हैं, आपको कुछ जंक कैरेक्टर मिलते हैं जो कमांड को गड़बड़ कर सकते हैं। उदाहरण के लिए, मैंने किया ls --color=always | lessऔर मिला: ESC[01;32mexecute_once.shESC[0m(मुझे पता है कि यह पुराना है और आप शायद परवाह नहीं करते हैं, लेकिन भविष्य के आगंतुकों के लिए, यह उपयोगी हो सकता है)
रयान एमोस

55

इस तरह से -R विकल्प के साथ कम प्रयास करें:

command | less -R

यह मेरे लिए इस तरह से एक लाइनर में काम करता है:

ls -la | grep --color=always bash | less -r

और इस तरह भी:

ls --color | less -R

लेकिन आपको प्राथमिक उत्पादन (इस मामले में ls का आउटपुट) को --color पैरामीटर के साथ थोड़ा मोड़ना होगा।


धन्यवाद, यह ack-grep के लिए भी काम करता है। ack-grep my_string - रंग | कम -R
इग्नाइटफ्लो

1
- रंग पहचाना नहीं जाता है: ls: अवैध विकल्प - - osx पर रनिंग बैश।
स्कॉट बिग्स

1
@Scott Biggs: OSX में कोई --color नहीं है; कोशिश एलएस-जी

@ लू-ची, यहां तक ​​कि -Gरंग भी गायब हैं
इयूलियन ओनोफ्रेई

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