क्या कोई संपीड़न प्रारूप है जो पूंछ संचालन का समर्थन करता है?


12

मैं एक संपीड़न प्रारूप की तलाश कर रहा हूं जो tailएड होने का समर्थन करता है । आप अंतिम एक्स असम्पीडित बाइट पाने के लिए पूरी फाइल को पढ़ने के लिए नहीं है। यह bzip2, xz, lzma, आदि जैसे किसी भी प्रारूप के साथ संभव है?

मैंने एक बार gzip का उपयोग करके कुछ कोडित किया जो ऐसा कर सकता था। असल में एक उच्च स्तर पर, यह क्या किया गया था एक साथ कई gzip ब्लॉक बिल्ली, तो मेरे पास एक उपयोग था जो आखिरी ब्लॉक शुरू होने तक फ़ाइल के अंत से पीछे की ओर तलाश कर सकता था। ये फाइलें मानक gzip उपयोगिताओं द्वारा पूरी तरह से पठनीय थीं, लेकिन मैं उम्मीद कर रहा हूं कि कुछ और मानकीकृत उपलब्ध हैं।

इसका अंतिम उद्देश्य लॉग फ़ाइलों के लिए है, जिसे मैं संपीड़ित लिख सकता हूं, और फिर tailउन्हें सक्षम कर सकता हूं (तब भी जब वे पूरी तरह से लिखे गए हैं; यानी स्ट्रीमिंग) बिना डिस्क या नेटवर्क से पढ़े पूरी बात का इंतजार किए बिना।

जवाबों:


5

gzip में एक --rsyncable विकल्प है जो अनिवार्य रूप से समान है । गैर-मानक भाग gzip- ब्लॉक-अवेयर "ज़ेटल" उपयोगिता होगा, लेकिन ऐसा लगता है कि आपने पहले से ही निपटा लिया है।


2
बेशक वह विकल्प प्रभावी रूप से आपको -0.5 संपीड़न स्तर जैसी किसी चीज़ तक सीमित कर देता है, भले ही आप -9 निर्दिष्ट करें।
Psusi

आपको gzip का संस्करण कहां मिल रहा है जो इसका समर्थन करता है? यदि यह एक बिंदु पर एक विकल्प था, तो यह हटा दिया गया प्रतीत होता है।
पैट्रिक

डेबियन आधारित डिस्ट्रोस में यह है - यह उबंटू 10.04 से है: रूट @ backup1: ~ # gzip -V gzip 1.3.12 root @ backup1: ~ # gzip -h | egrep rsync --rsyncable rsync-फ्रेंडली संग्रह बनाएं
the-wabbit

जाहिर है, कुछ अन्य डिस्ट्रो मेंटेनर (जैसे फेडोरा) ने पैच को भी शामिल किया है। और यहाँ एक पुराने gzip के लिए एक पैच है: samba.org/netfilter/diary/gzip.rsync.patch जो थोड़े संशोधनों के साथ हाल ही के संस्करण पर लागू हो सकता है, अगर आपको वास्तव में आत्म-संकलन करने की आवश्यकता है।
wabbit

BTW, चर्चाओं से पता चलता है कि संपीड़न पर प्रभाव नगण्य है (2-3% के भीतर), हालांकि एक विशिष्ट डेटासेट के लिए लाभ भिन्न हो सकता है। यदि आपको अपस्फीति जैसे अनुकूली एल्गोरिदम के साथ "ट्रिब्यूट" संपीड़न की आवश्यकता है, तो शायद ही अब हर बार एल्गोरिदम को रीसेट करने के आसपास कोई रास्ता नहीं है - बेशक यह एक संपीड़न दक्षता हिट को प्रेरित करेगा।
वाबेट

0

FWIW: मैंने zlib के zran.c स्रोत कोड पर एक कमांड लाइन टूल विकसित किया है जो gzip फ़ाइलों के लिए अनुक्रमित बनाता है: https://github.com/circulosmeos/gztool

यह -Tविकल्प के साथ एक गज़िप फ़ाइल की एक निरंतर पूंछ बना सकता है। या केवल अंतिम सामग्री और स्टॉप की एक पूंछ, -t(कई अन्य उपलब्ध विकल्प) के साथ।

ध्यान दें कि इनमें से किसी भी कार्रवाई के gztoolलिए उस कार्रवाई के साथ एक अनुक्रमणिका फ़ाइल बनाएगी।

सूचकांक को किसी भी समय बाधित किया जा सकता है और बाद में पुन: उपयोग और / या पूरा किया जा सकता है। और जैसा gztoolकि फ़ाइल में किसी भी स्थान से डेटा निकालने के लिए किया जा सकता है, और उस क्रिया के साथ अनुक्रमणिका को बनाएगा, इसका उपयोग करते समय कभी भी समय नष्ट नहीं होता है।

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