मैं टार गज़िप आर्काइव बनाना चाहूंगा, लेकिन इसका उल्टा तरीका यह है कि जो सबसे अधिक किया जाता है - क्या पुरालेख में फ़ाइलों को व्यक्तिगत रूप से पूरे संग्रह को संपीड़ित करने के बजाय संपीड़ित किया जाना चाहिए: इस तरह यह उस प्राप्य संपत्ति को बनाए रखता है जो उसके पास होनी चाहिए। यह मेरे लिए बहुत अधिक समझ में आता है, और मुझे नहीं पता कि यह क्यों इष्ट नहीं है।
मुझे यह करने के बारे में कुछ विचार हैं:
- संपीड़न के साथ एक संग्रह उपकरण का उपयोग करें, जैसे 7zip
- फ़ाइलों को पहले संपीड़ित करके ऐसा करने के लिए मेरी स्वयं की स्क्रिप्ट लिखें, फिर उन्हें टार को खिलाएं ( पहले से ही टार फाइल लिखने के लिए एक आसान पायथन स्क्रिप्ट मिली और पायथन गज़िप लाइब्रेरी का उपयोग करना आसान लगता है ।
हालांकि, आदर्श रूप से, मैं इसके लिए टार का उपयोग करना जारी रखना चाहूंगा, क्योंकि यह संग्रह करने के लिए एक परिचित, वास्तविक तथ्य है जहां मैं काम करता हूं। टार में --to-commandस्विच है, जो पाइपिंग एक्सट्रैक्टेड फ़ाइलों को प्रोग्राम में रखने की अनुमति देता है। अगर मेरे पास एक सममित आदेश होता, जैसे कि --from-commandमैं अपनी इच्छा को आसानी से लागू करता:
tar cf my_archive.tar file1 file2 --from-command=gzip
tar xf my_archive.tar --to-command=gunzip
मेरी प्रेरणा अभिलेखागार से निपटने के लिए आती है जिसमें बड़ी संख्या में बड़ी फाइलें होती हैं। मैं वर्तमान में उन्हें टार्-गिप करता हूं, लेकिन फिर संग्रह से किसी भी फाइल को निकालने में लंबा समय लगता है - यह टार फाइल को एक्सेस करने से पहले विघटित होने की जरूरत है, और यह क्रमबद्ध तरीके से ऐसा करता है!
तो यहाँ मेरे सवाल हैं:
- क्या इसे प्राप्त करने का एक स्पष्ट तरीका है कि मैं अवहेलना कर रहा हूं?
- क्या किसी ने पहले से ही विशेष रूप से के साथ करने के लिए एक उपकरण लिखा है
tar? - यदि एक कहेंगे
tarऔरgzipऔर संग्रह के मानक तरीकों और लिनक्स में संपीड़ित करने, क्या बराबर है, ढंग के बारे में मैं उल्लेख में संपीड़न के साथ संग्रह करने के लिए लोकप्रिय तरीका होगा (यानी नहींtar.gz) - वहाँ एक और तरीका है कि मैं एक बड़े टार-गेज्ड आर्काइव से फ़ाइल निकालने में लगने वाले समय की बड़ी मात्रा को दरकिनार करने के लिए अनदेखी कर रहा हूं?
धन्यवाद!
संपादित करें
मुझे एहसास है कि मुझे अपने प्रश्न को फिर से वाक्यांश और परिष्कृत करने की आवश्यकता है। विशेष रूप से तब से, जैसा कि रॉबिन हुड ने बताया, संपीड़ित अभिलेखागार (अर्थात् zip) बनाने के लिए मौजूदा आसान समाधान मौजूद हैं । तो यहाँ है:
क्या इसका उपयोग करने का कोई तरीका है tarजो इसे अभी भी संकुचित रखते हुए संग्रह में सही यादृच्छिक-अभिगम की अनुमति देता है? यदि नहीं, तो क्या tarलिनक्स के लिए एक और -सुधार है (जो एक ही तर्क के साथ बनाया गया है, और, आदर्श रूप से, एक ही कमांड-लाइन विकल्पों के समर्थन के साथ), जो इसे प्राप्त करता है?
अभी मैं बदलकर, tarसामान्य अर्थों में प्रतिस्थापित कर सकता हूं zip:
tar c path/to/file1 path/to/file2 | gzip > arc.tar.gz
gunzip < arc.tar.gz | tar x
सेवा मेरे:
zip -qr - path/to/file1 path/to/file2 > arc.zip
unzip -qoX test.zip
हालाँकि, इसका नुकसान यह है कि यह उन सभी विकल्पों का समर्थन नहीं tarकरता है, जो संग्रह करने के लिए करता है, अर्थात्:
- प्रत्येक निकाले गए फ़ाइल को अलग-अलग पाइप में
--to-commandस्विच करना ( स्विच) unzipमानक इनपुट में एक संग्रह को स्वीकार नहीं करता है।funzipहालांकि, यह केवल संग्रह में पहली फ़ाइल को आउटपुट करता है
इसलिए यह सीमित है।
एक बार फिर धन्यवाद!
tarटेप के साथ उपयोग करने का इरादा था - हालांकि यह अभी भी खोज योग्य अभिलेखागार का समर्थन करता है!