STDIN से डेटा पढ़ते समय फ़ाइलों को संपीड़ित करें


127

क्या लिनक्स पर स्टड से पढ़ते समय डेटा (एक संपीड़ित संग्रह बनाना) संभव है?


मैं इस प्रश्न को ऑफ-टॉपिक के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि यह यूनिक्स और लिनक्स से संबंधित है
Dan Dascalescu

जवाबों:


180

हां, इसके लिए गज़िप का इस्तेमाल करें। सबसे अच्छा तरीका है कि इनपुट के रूप में डेटा को पढ़ें और आउटपुट फाइल को संपीड़ित करें

cat test.csv | gzip > test.csv.gz

cat test.csvडेटा को स्टडआउट के रूप में भेजेगा और पाइप-साइन गज़िप का उपयोग करके उस डेटा को स्टडिन के रूप में पढ़ा जाएगा। कुछ फ़ाइल में gzip आउटपुट को पुनर्निर्देशित करना सुनिश्चित करें क्योंकि संपीड़ित डेटा टर्मिनल पर नहीं लिखा जाएगा।


4
ध्यान दें कि डेटा प्रवाह बंद होने तक test.csv.gz फाइलें 0 आकार की बनी हुई हैं।
MUY बेल्जियम 10

... और कोई ऐसा कैसे करता है? क्या यह वास्तव में एक अलग प्रश्न है?
रसेलपिएर्स

9
यह भी साथ काम करता है xz:mysqldump mydb | xz > dbdump.sql.xz
जेरे

1
उपयोग कर सकते हैं -9, डिफ़ॉल्ट संपीड़न स्तर है -6
पाब्लो ए

110

हां, gzipआपको ऐसा करने देगा। यदि आप बस चलाते हैं gzip > foo.gz, तो यह फ़ाइल को foo.gz पर STDIN सेक करेगा। आप इसमें डेटा को भी पाइप कर सकते हैं, जैसे some_command | gzip > foo.gz


1

gzip > stdin.gzशायद? अन्यथा, आपको अपने प्रश्न का जवाब देना होगा।

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