"कम" स्वचालित रूप से gzipped फ़ाइलों को विघटित नहीं करता है


55

Fedora / Redhat / CentOS पर यह lessकमांड जादुई रूप से एक gzipped फ़ाइल का पता लगाने और इसे उड़ने पर विघटित करने के लिए लगता है, इसलिए आप ऐसा कर सकते हैं:

less my_stuff.csv.gz

मैंने अभी देखा है कि यह Ubuntu 11 पर काम नहीं करता है

less my_stuff.csv.gz
"my_stuff.csv.gz" may be a binary file.  See it anyway? 

मैं अपने CentOS VMs को देखने के लिए देख रहा हूँ कि क्या कुछ शेल उर्फ ​​मैजिक है जो इसे काम करता है लेकिन ऐसा प्रतीत नहीं होता है। क्या gzip सपोर्ट सिर्फ CentOS बाइनरी में बनाया गया है?

अगर किसी को पता है कि यह सेंटोस पर कैसे काम करता है और / या कैसे इसे Ubuntu पर काम करने के लिए बनाया जा सकता है तो मैं आभारी रहूंगा।

मुझे पता है मैं कर सकता हूँ

zcat my_stuff.csv.gz | less

लेकिन इससे मेरा कीबोर्ड अधिक तेज़ी से खराब होगा।


2
उबंटू में 16.04 less myfile.txt.gzआउट-ऑफ-द-बॉक्स काम करता है।
पाब्लो ए

जवाबों:


42

lessडिफ़ॉल्ट रूप से ऐसा न करें, लेकिन डिफ़ॉल्ट में एक रेखा होती है ~/.bashrcजो डिफ़ॉल्ट व्यवहार को बदल देती है:

[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

इस लाइन को हटाने या टिप्पणी करने के लिए सुनिश्चित करें।
इसके स्थान पर, आप बिना जानकारी के, बिना ज़िप किए और गैर-ज़िप की गई फ़ाइलों को पृष्ठ पर रख सकते हैं

less /var/log/dpkg.log*

जहां लॉग में से कुछ ज़िप किया जा सकता है और कुछ अन्य गैर ज़िपित।

sudoआपके द्वारा एक्सेस किए गए रूट खाते के लिए एक ही काम नहीं किया जा सकता है, लेकिन दो वर्कअराउंड हैं:

  1. sudo zless file*
  2. sudo -E less file*

पहले मामले में मैंने इस्तेमाल किया zless, वह भी गैर-ज़िप्ड फ़ाइल के लिए काम करता है।
दूसरे में मैंने आपके पर्यावरण चर को संरक्षित -Eकरने sudoका विकल्प जोड़ा , जिससे आप कम काम कर सकें।


1
डिफ़ॉल्ट रूप से .bashrc में मौजूद पहली पंक्ति नहीं है? मुझे इसे जोड़ना याद नहीं है और यह यहां (10.4) मूल रूप से काम करता है।
जोहानवड

2
@johanvdw: हाँ यह है: मैंने कहा "डिफ़ॉल्ट में एक पंक्ति है ~/.bashrc"। ओपी अपने आप को संशोधित कर सकता था ~/.bashrc
enzotib

बस मैंने सोचा कि मैं आरएचएल ओएस पर उल्लेख करूंगा कि यह कहां काम करता है, आप निम्न में देखेंगे env: LESSOPEN=|/usr/bin/lesspipe.sh %sयह एक स्क्रिप्ट द्वारा किया गया है जिसमें [ -x /usr/bin/lesspipe.sh ] && export LESSOPEN="|/usr/bin/lesspipe.sh %s"जोड़ा गया है/etc/profile.d/less.sh
KHobbits

25

कम gzipped फ़ाइलें नहीं पढ़ सकते हैं, आप इसे अपने मैन पेज में देख सकते हैं। उबंटू में डिफ़ॉल्ट रूप से स्थापित एक स्क्रिप्ट है और अधिकांश डिस्ट्रोस , जिसे ज़लेस कहा जाता है , जो आपके वर्णित के अनुसार काम करता है।

तो उत्तर का उपयोग करना है:

zless my_stuff.csv.gz

फेडोरा और उबंटू के बीच का अंतर यह है कि फेडोरा ने पर्यावरण चर LESSOPEN को तर्क के माध्यम से कम करने के लिए निर्धारित किया है:

echo $LESSOPEN
||/usr/bin/lesspipe.sh %s

ध्यान दें कि यह कमांड उबंटू में काम करने वाला नहीं है।


उबंटू zlessमें एक शेल स्क्रिप्ट है जो इसके मूल में उपयोग करता है lessऔर lesspipeइसलिए lessयह सिम्लिंक नहीं हो सकता है zless। मुझे नहीं लगता कि यह अन्य डिस्ट्रोस में अलग है।
enzotib

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