2009-03-20 11 views
8

मेरे पास एक फ़ाइल है, इसकी सामग्री समान है। यह gzip में पारित किया जाता है और केवल संपीड़ित रूप संग्रहीत किया जाता है। मैं ज़िप को फिर से उत्पन्न करने में सक्षम होना चाहता हूं, और केवल मेरी प्रति को अद्यतन करना चाहिए, वे अलग-अलग होना चाहिए। चूंकि यह भिन्न उपकरण (diff, xdelta, subversion) खड़ा है, फ़ाइलों को बदलने के रूप में देखते हैं।उसी फ़ाइल का एक समान gzip कैसे बनाएं?

Premise, मैं एक subversion भंडार में एक महत्वपूर्ण डेटाबेस के mysqldump भंडारण कर रहा हूँ। यह मेरा इरादा है कि एक cronjob समय-समय पर डीबी डंप, इसे gzip, और फ़ाइल प्रतिबद्ध। वर्तमान में, हर बार फ़ाइल को डंप किया जाता है और फिर gzipped इसे अलग के रूप में माना जाता है। मैं अपनी संशोधन संख्याओं को हर 15 मीटर में अनिवार्य रूप से बढ़ाने की इच्छा नहीं करना चाहूंगा।

मुझे एहसास है कि मैं फ़ाइल को केवल सादा पाठ के रूप में डंप कर सकता हूं, लेकिन मैं इसे बड़ा नहीं करना पसंद करूंगा।

आदेश मैं वर्तमान में डंप उत्पन्न करने के लिए उपयोग कर रहा हूँ है:

mysqldump $DB --skip-extended-insert | sed '$d' | gzip -n > $REPO/$DB.sql.gz 

-n gzip का निर्देश फ़ाइल नाम/टाइमस्टैम्प जानकारी निकालने के लिए। sed '$d' फ़ाइल की आखिरी पंक्ति को हटा देता है जहां mysqldump एक टाइमस्टैम्प रखता है।

इस बिंदु पर, मैं शायद इसे सादा पाठ फैशन में संग्रहीत करने के लिए वापस लौटने जा रहा हूं, लेकिन मैं उत्सुक था कि किस प्रकार का समाधान है।

संकलित, Mr. Bright was correct, मैंने गलती से पूंजी एन का उपयोग किया था जब सही तर्क एक लोअरकेस था।

उत्तर

12

एन फ़ाइल नाम/टाइमस्टैम्प जानकारी निकालने के लिए gzip निर्देश देता है।

वास्तव में, यह विपरीत है। -n वह मूल फ़ाइल नाम और समय टिकट भूलने के लिए कहता है।

+0

हमेशा कुछ बेवकूफ बेवकूफ। श्वास। मूर्खतापूर्ण गलती को इंगित करने के लिए धन्यवाद। – Danny

3

मुझे लगता है कि gzip फ़ाइल (ओं) पर मूल दिनांक और टाइमस्टैम्प को संरक्षित कर रहा है जिससे यह एक अलग संग्रह उत्पन्न कर सकेगा।

-N --name 
      When compressing, always save the original file 
      name and time stamp; this is the default. When 
      decompressing, restore the original file name and 
      time stamp if present. This option is useful on 
      systems which have a limit on file name length or 
      when the time stamp has been lost after a file 
      transfer. 
1

लेकिन Watchout: दो ही अपरिवर्तित फ़ाइल के अलग अलग समय पर किया जाता gzips भिन्न होते हैं। ऐसा इसलिए है क्योंकि gzip स्वयं gzip निर्माण दिनांक के साथ समयबद्ध है - यह gzip फ़ाइल के शीर्षलेख पर लिखा गया है। इस प्रकार जाहिर है कि अलग-अलग gzips में एक ही सामग्री हो सकती है।