2013-05-23 4 views
15

आइए कहें कि मेरे पास 3 फ़ाइल है: 1.txt, 2.txt और 3.txt जो सभी को gzipped किया गया है। मुझे पता है gzip बिल्ली का उपयोग कर जोड़ा जा करने के लिए एक से अधिक फ़ाइलों की अनुमति देता है कि कर रहा हूँ:एकाधिक .gz फ़ाइलों को संयुक्त किया जा सकता है जैसे कि वे एक फ़ाइल में निकालें?

cat 1.gz 2.gz 3.gz > 123.gz 

लेकिन जब 123.gz निकाला जाता है यह मूल 3 फ़ाइलों का उत्पादन करेगा।

क्या तीन अभिलेखागारों को इस तरह से जोड़ना संभव है कि संग्रह में अलग-अलग फ़ाइलों को एक फ़ाइल में भी जोड़ा जाएगा?

+0

परंपरागत यूनिक्स तरीका उन्हें टार देना है। AFAIK [xz] (http://tukaani.org/xz/) जो भी आप चाहते हैं वह कर सकते हैं, लेकिन वे ज़िप नहीं हैं। – djf

+1

जब 123.gz क्या निकाला जाता है? gunzip _will_ निकालें 123 नामक एक फ़ाइल में। –

उत्तर

20

आश्चर्य की बात है, यह वास्तव में संभव है।

GNU zip man page states: एकाधिक संपीड़ित फ़ाइलों को समेकित किया जा सकता है। इस मामले में, गनज़िप एक ही समय में सभी सदस्यों को निकाल देगा।

उदाहरण:

आप इस तरह जिप निर्माण कर सकते हैं:

echo 1 > 1.txt ; echo 2 > 2.txt; echo 3 > 3.txt; 
gzip 1.txt; gzip 2.txt; gzip 3.txt; 
cat 1.txt.gz 2.txt.gz 3.txt.gz > all.gz 

तो यह निकालें:

gunzip -c all.gz > all.txt 

all.txt की सामग्री को अब होना चाहिए:

1 
2 
3 

कौन सा रूप में ही है:

cat 1.txt 2.txt 3.txt 

और - के रूप में आप का अनुरोध किया - "gunzip ही बार में सभी सदस्यों को उद्धृत करेगा"।

4

क्रम से अधिक फ़ाइलों को श्रेणीबद्ध करने के लिए, कोशिश:

gzip -c 1.txt > 123.gz 
gzip -c 2.txt >> 123.gz 
gzip -c 3.txt >> 123.gz 

बाद में, gzip -dc 123.gzcat 1.txt 2.txt 3.txt के बराबर होगा।

+0

धन्यवाद, यह मेरे मामले में काफी काम नहीं करता है क्योंकि प्रत्येक संग्रह एक हडोप नौकरी में एक अलग reducer द्वारा लिखा जाता है। – slayton

संबंधित मुद्दे

 संबंधित मुद्दे