फ़ाइलों की एक सूची कैट / गनज़िप के लिए उपयोगिता


2

क्या आम तौर पर स्थापित लिनक्स उपयोगिता है जो फ़ाइलों की सूची ले जाएगी और cat या gzip -d (== zcat ) उन्हें इस बात पर आधारित कि क्या फ़ाइल संपीड़ित है?

एक उदाहरण जहां मुझे बस इसकी आवश्यकता है, जब मैं जांच करना चाहता हूं /var/log/messages फ़ाइलों, दोनों लॉग इन सहित ( /var/log/messages-{date}.gz ) और वर्तमान फ़ाइल।

मैं संभवतः मेरे जैसे कुछ जोड़ दूंगा ~/.zshrc:

catz () {
    local file
    for file ; do
        case $file in
            *gz*) gzip -d < $file ;;
            *bz*) bzip -d < $file ;;
            *xz*|*lz*) xz -d < $file ;;
            *) cat $file ;;
        esac
    done
}

लेकिन, मैं हमेशा एक मशीन पर नहीं हूं जहां मैंने अपना आरसी स्थापित किया है, इसलिए मैं अधिक सामान्य समाधान की उम्मीद कर रहा था।

जवाबों:


2

less क्या वो।

less /var/log/messages*

यदि आप के आउटपुट को पाइप करते हैं less एक अन्य कार्यक्रम के लिए, less जैसा व्यवहार करेंगे cat या gunzip -c और आउटपुट का पेज नहीं।


विशेष रूप से, $ LESSPIPE द्वारा निर्दिष्ट जो भी कार्यक्रम ऐसा करता है। मैंने उस सटीक कमांड को पहले आज़माया था, फाइलों की सूची के माध्यम से ': n' / ': p' होने पर नाराज था, और प्रश्न लिखा। इस पर वापस आते हुए, मुझे वह मिला जो मैं वास्तव में उपयोग करने जा रहा हूं: less /var/log/messages* | less। धन्यवाद।
benizi

1

"अधिक सामान्य समाधान" जिसे आप खोज रहे हैं, अपनी उंगलियों को टाइप करने के लिए प्रशिक्षित करना है zcat -f … इसके बजाय बीच-बीच में पलटने की कोशिश करें zcat तथा cat

वैसे:

  • zgrep एक अतिरिक्त ध्वज के बिना संपीड़ित और असम्पीडित दोनों फ़ाइलों के माध्यम से खोज करेगा।
  • bzcat -f जैसा व्यवहार करता है zcat -f - दोनों बस उत्पादन (डिकम्प्रेसिंग के बिना) फ़ाइलों को उनके मूल संपीड़न प्रारूप में समझने के बजाय कि यह एक अलग संपीड़ित प्रारूप है और सही अपघटन कार्यक्रम को बंद करने के लिए उप-फोर्किंग नहीं है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.