मैं एक .xz संग्रह में कई फ़ाइलों को कैसे संपीड़ित करता हूं?


जवाबों:


10

हालांकि के रूप में Zacharee1 द्वारा विस्तृत जानकारी दी और द्वारा heemayl आमतौर पर है आप क्या करना चाहते करेंगे क्या, एक और तरीका है करने के लिए पाइप tarred डेटा करने के लिए है आदेश:tar cJf archive files...xz

tar c files... | xz > archive.tar.xz

चूंकि उबंटू विकल्प का tarसमर्थन करता Jहै, यह वैकल्पिक तरीका विशेष रूप से उपयोगी है जब आप विकल्पों को पास करना चाहते हैं xz

इस उदाहरण में, मैं कुछ TIFF फ़ाइलों को उच्च स्तर की संपीड़न ( -9टू xz) और वर्बोज़ आउटपुट ( vटू tar, -vटू xz) के साथ टार और ज़ज़िप करता हूँ :

ek@Io:~/Pictures$ tar vc *.tif{,f} | xz -9v > pics.tar.xz
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
  100 %       207.3 KiB / 290.0 KiB = 0.715

बेशक, यह दो अलग-अलग चरणों में भी किया जा सकता है:

ek@Io:~/Pictures$ tar vcf pics.tar *.tif{,f}
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
ek@Io:~/Pictures$ xz -9v pics.tar
pics.tar (1/1)
  100 %       207.3 KiB / 290.0 KiB = 0.715

वे दो तरीके वास्तव में वे कैसे काम करते हैं, इसके बराबर नहीं हैं, हालांकि .tar.xzअंत में वे जो फाइलें पैदा करते हैं, वे एक ही होनी चाहिए (और जब मैंने परीक्षण किया था)।

  • पहले में, उत्पादन की tarहै पहुंचाया ( |) के लिए इनपुट की xz। लगभग तुरंत xzडेटा प्राप्त करता है tar, और कोई मध्यवर्ती असम्पीडित टार फ़ाइल कभी नहीं बनाई जाती है। यह कहना है कि पहला तरीका अनिवार्य रूप से समतुल्य हैtar cJf archive files... , सिवाय अतिरिक्त तर्कों के xz
  • दूसरे में, पहले कमांड द्वारा एक असम्पीडित टार आर्काइव बनाया जाता है, फिर xzदूसरी कमांड में संकुचित होता है। ( xzस्वचालित रूप से मूल फ़ाइल को हटा दिया जाता है, जब तक कि ऐसा नहीं किया जाता है, जब तक कि -k/ के साथ इनवॉइस नहीं किया जाता है --keep)।

आगे पढ़ने के लिए, देखें राफेल वैन हॉर्न द्वारा इस पोस्ट और tarऔर xzmanpages।


1
+ 1. यह एक अच्छा है जब उच्चतर (या भिन्न) संपीड़न अनुपात वांछित होता है ..
heemayl

2
नमस्ते 2015! एक और तरीका जिससे आप अलग-अलग कंप्रेशन लेवल को पूरा कर सकते tar -Jहैं, पर्यावरण वेरिएबल को निर्दिष्ट करने के लिए है XZ_OPT, इनवोकेशन को कुछ इस तरह बना सकते हैं:XZ_OPT="-9v" tar -Jcf out.tar.xz [files]
21

2
@ एक उत्कृष्ट विचार है। मुझे ऐसा लगता है कि यह अपना अलग उत्तर देता है। क्या आप पोस्ट करने के लिए तैयार हैं?
एलियाह कगन

13

विकल्प के tarसाथ प्रयोग करें -J:

tar -cvJf images.tar.xz /directory/containing/images/*

tar एक (संग्रह) में कई फ़ाइलों को संयोजित करने के लिए उपयोग किया जाता है और फिर हमें XZ संपीड़न एल्गोरिथ्म का उपयोग करके संग्रह को संपीड़ित करने की आवश्यकता होती है।

से man tar:

-c, --create
       create a new archive
-v, --verbose
       verbosely list files processed
-J, --xz

-f, --file ARCHIVE
       use archive file or device ARCHIVE

यह भी ध्यान दें कि images.tar.xzयदि आप इसे कहीं और उपयोग करना चाहते हैं, तो इसे वर्तमान निर्देशिका में बनाया जाएगा /full/path/to/images.tar.xz


कई विशाल PSDs को एक्साइज़ करने की प्रक्रिया शुरू की और ईमानदार होने के लिए, संग्रह कुछ विशाल संपीड़न की पेशकश कर रहा है! 400 एमबी + अब 200 एमबी
दूर के ग्राफिक्स

1
great..although xzमें सबसे धीमी है xz, gzip, bzip2others..the सुस्ती की तुलना में अपने उच्च संपीड़न अनुपात की वजह से सौदा करने के लिए लायक है, तो आप के साथ और अधिक संपीड़न चाहते है ..
heemayl

कुल में मेरे psds हैं, जैसे, 600-900 MB कुल xD
दूर के ग्राफिक्स

आप जाने के लिए अच्छे हैं ....
heemayl

कुछ थोड़े त्रुटि ._
दूर के ग्राफिक्स

3

इस कमांड का उपयोग करें tar cJf <archive.tar.xz> <files>:। एक स्थान के साथ अलग फ़ाइल पथ।


आपको इसकी आवश्यकता है:-cfJ
AB

1
@AB: आपको सामने की आवश्यकता नहीं -है .. से man tar: A function letter need not be prefixed with ``-''.. tar cJfबिल्कुल ठीक है।
हेमेयेल

@heemayl लेकिन यह काम नहीं करता है। मैंने इसे '-' के बिना आज़माया, लेकिन टार पूरा नहीं हुआ।
एबी

@heemayl यही मैंने सोचा है।
द वंडर

1
ध्यान दें कि आपको अपने पहले उत्तर के साथ रहना चाहिए tar cJf, इससे ओपी को ऐसा करने का एक और तरीका मिलेगा, क्योंकि मेरा उत्तर पहले से ही कवर किया tar --cvJfगया है ..
heemayl
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.