मैं एक टारबॉल का उपयोग कैसे करूँ?


776

मुझे एक -xfzझंडे के साथ टारबॉल निकालने के लिए उपयोग किया जाता है , जो गज़िप और बज़िप 2 अभिलेखागार को संभालता है।

हाल ही में मैंने एक .tar.xzफ़ाइल में भाग लिया है और मैं इसे एक कदम का उपयोग करके अनसुना करना चाहूंगा, मैं यह tarकैसे कर सकता हूं?


10
नोट यदि आपको xz-utilsपहले से मौजूद नहीं है तो स्थापित करना पड़ सकता है
टोबियास किंजलर

यहाँ मेरी छोटी सी स्क्रिप्ट है जो आपके लिए टार झंडे का अनुमान लगाती है: gist.github.com/shime/5908634
shime

2
tar --helptarझंडे की सूची । -xzfपर लागू होता है gzip-xjfको bz2-xJfको xz
noobninja

जवाबों:


1017

उबंटू में जीएनयू टार शामिल है, जो प्रारूप को खुद से पहचानता है! एक आदेश मैनुअल के अनुसार किसी भी समर्थित संपीड़न विधि के साथ काम करता है ।

tar xf archive.tar.xz
tar xf archive.tar.gz
tar xf archive.tar

आदि यदि कोई Cannot execत्रुटि देता है , तो आपको sudo apt install xz-utilsपहले की आवश्यकता हो सकती है ।


41
यह जीएनयू टार की एक विशेषता है। मैं प्रतिस्पर्धा के कार्यान्वयन के बारे में नहीं जानता, लेकिन GNU टार ubuntu के लिए सबसे अधिक प्रासंगिक होना चाहिए। gnu.org/software/tar/manual/tar.html#SEC131
ramslök

42
अगर आप इसमें भाग लेते हैं tar: xz: Cannot exec: No such file or directory, तो स्थापित करें xz-utils:sudo apt-get install xz-utils
Collin एंडरसन

10
यह एक उत्तर नहीं है, यह एक 'आप जवाब के बारे में परवाह नहीं है, भले ही आपने जवाब दिया'। उन लोगों के लिए एक विचार छोड़ दो जो 'नवीनतम' पर नहीं हैं
सीन होउलहेन

6
किस संस्करण को tarअब विशिष्ट ध्वज की आवश्यकता नहीं है?
मार्क टोमलिन

8
@ सीनहॉलिहेन, यह एक जवाब नहीं है क्योंकि ओपी ने एक मामूली XY समस्या पूछी । ramslök ने ओपी के लिए कहा गया था की तुलना में बेहतर दिया, और इसमें एक प्रभावी "आप जवाब के बारे में परवाह नहीं करते हैं, भले ही आपने पूछा", जो उचित था क्योंकि यह सच था।
क्रिस्टोस हेवर्डवर्ड

331

प्रयत्न, कोशिश

tar -xJf file.pkg.tar.xz

-Jझंडा कि विशेष रूप से .xz फाइलों के साथ संबंधित है।


59
मुझे आश्चर्य है कि 2020 में हमारे पास कितने झंडे होंगे। जैसे ... 45 विभिन्न कंप्रेशन? टार स्विच को जानना पहले से ही लिनक्स-फू में एक ब्लैक-बेल्ट है। : /
शिकी

22
@ शिकी: शायद इसीलिए यह अब आपको कंप्रेशन फॉर्मेट के झंडे को निर्दिष्ट नहीं करता है। (रामस्लोक का जवाब देखें।)
नैट सीके


6
यह पूरी तरह से स्वीकृत उत्तर होना चाहिए क्योंकि यह टार सपोर्टिंग के किसी भी संस्करण के लिए प्रश्न का उत्तर देता है.xz
पोस्सी

8
वर्ष 2030 में झंडे पूरे होते जाते हैं ... 2040 वे
भावुक

80

यदि किसी कारण से tarसमाधान काम नहीं करते हैं (शायद इसलिए कि आप ओएस एक्स बिल्ट-इन का उपयोग कर रहे हैं), तो यह कोशिश करें:

unxz < file.tar.xz > file.tar

... जो इसके बराबर है:

xz -dc < file.tar.xz > file.tar

फिर tarफाइल को अनटार करने के लिए उपयोग करें।


2
यह एक पाइप के साथ रचनात्मक होना चाहिए।
गेरिट

6
मुझे ऐसा लगता है कि आप ऐसा कर सकते हैं unxz < file.tar.xz | tar x
तीसवें प्रहर

7
यह मेरे लिए काम किया, जहां tar xfनहीं किया। ubuntu 12.04
philshem

कम से कम मेरे उबंटू मशीन पर, के unxzबराबर नहीं है xz -dc, लेकिन करने के लिए xz -d। तो आपको निकालने के file.tar.xzलिए file.tar, आप बस लिखेंगे unxz file.tar.xz। यदि आप एक समान चाहते हैं xz -dc, तो स्टडआउट के लिए विघटित होकर उपयोग करें xzcat। उदाहरण के लिए xzcat file.tar.xz | tar x
nwellnhof

30

xz एक दोषरहित डेटा कंप्रेसर है। आपको xz से टार बॉल को निकालना होगा और फिर टार को निकालना होगा:

unxz my_archive.tar.xz      # results in my_archive.tar

तब आप टार निकालना जानते हैं

tar -xf my_archive.tar

स्रोत: XZ Utils - विकिपीडिया


1
सबसे बढ़िया उत्तर। xzstdout पुनर्निर्देशन की जरूरत नहीं है। इससे भी बेहतर:unxz -k
मार्क जेरोनिमस

@MarkJeronimus मुझे यह इतना अच्छा नहीं लगता क्योंकि यह एक मध्यवर्ती फ़ाइल बनाता है। जीएनयू टार या पाइप का उपयोग करके कम संसाधनों की मांग करनी चाहिए।
मेलेबियस जूल

15

मुझे एक ही समस्या थी, tar xfकमांड इसे निकालने में सक्षम नहीं था। इसे ठीक करने के लिए, आपको xz-utilsपैकेज स्थापित करना होगा । समाधान था:

sudo apt-get install xz-utils

फिर:

tar xf myfile.tar.xz

14
tar -xvf package.tar.xz

-x - फ़ाइलों को निकालें

-v - मौखिक रूप से सूचीबद्ध फाइलों की प्रक्रिया

-f - निर्दिष्ट संग्रह फ़ाइल का उपयोग करें


5

बस यह जोड़ना चाहते हैं कि यदि आपके पास GNU टार का पुराना संस्करण है, जो संस्करण 1.22 से पहले --xz और -J विकल्प उपलब्ध हो गया है, तो आप उपयोग करके tar.xz फ़ाइलों को संपीड़ित या विघटित कर सकते हैं --use-compress-program xz। उदाहरण के लिए,

tar --use-compress-program xz -cf example.tar.xz file1 file2 file3

या

tar --use-compress-program xz -xf example.tar.xz

4

यदि तार संपीड़न प्रारूप को पहचानता है, तो आपको ध्वज की आवश्यकता नहीं है:

tar xvf *.tar.xz

यदि आपको मैन्युअल रूप से इनपुट को डिकम्प्रेस करने की आवश्यकता है, उदाहरण के लिए क्योंकि आपका टार xz को पहचानने के लिए बहुत पुराना है, या आपको एक विशेष पथ की आवश्यकता है:

xz -cd *.tar.xz | tar xvf -

पाइप एक असम्पीडित मध्यवर्ती फ़ाइल बनाने की तुलना में तेज़ हैं, और कम डिस्क स्थान का भी उपयोग करते हैं!



3

वाह, यह वास्तव में एक अच्छा है। यह एक मैक पर 7zip के साथ किया गया था? इसे इस्तेमाल करे:

7z x -so file.tar.xz | tar xf -

7z की आवश्यकता है, जो वह नहीं चाहता है - वह इसे पूरी तरह से टार में करना चाहता है।
जेआरजी

हाँ, धन्यवाद - "xz" मुझे मिल गया! खैर, यह वैसे भी एक कदम है :) और tar J= tar xz, तो हम भी tar xzf file.tar.xz"सामान्य" की तरह लिख सकते हैं tar xvfz file.tar.gz। तो मूल रूप से कोई अंतर नहीं है। स्विच का उपयोग करने से पहले किसी डैश की आवश्यकता नहीं है।

यह लगभग वैसा ही है जैसे प्रश्न में उत्तर दिया गया था। :)

मुझे भी फेंक दिया गया था क्योंकि .xz फ़ाइल पर टार zxf ने त्रुटिपूर्ण जानकारी दी थी, मुझे लगता है कि J का उपयोग करने के लिए हर समय जाने का रास्ता होगा।
जॉर्ज कास्त्रो

2
हाँ! मैनुअल पेज स्रोत के साथ सिंक में नहीं है: बफर.के। Lzma के लिए -J का उपयोग करता है।

3

उबंटू पायथन (पायथन 2.7 और पायथन 3) के साथ आता है, जिसमें अभिलेखागार निकालने के लिए आवश्यक मॉड्यूल शामिल हैं। तो अगर किसी भी कारण से tarकमांड गायब है (कहते हैं कि आपके sysadmin ने इसे हटा दिया है और आपके पास sudoइसे स्थापित करने के लिए निजीकरण नहीं है ), तो एक का उपयोग कर सकते हैं:

python3 -c 'import tarfile,sys; b = tarfile.open(sys.argv[1]);print(b.extractall())' ./archive.xz 

एक छोटी स्क्रिप्ट के रूप में, यह अधिक पठनीय है:

#!/usr/bin/env python3
import tarfile,sys

with tarfile.open( sys.argv[1] ) as fd:
    fd.extractall()

मान लीजिए मैंने एक .xzफ़ाइल बनाई है tar cJf thing.xz /etc/passwd। संग्रह में फ़ाइल के etcसाथ निर्देशिका होगी passwd। उपरोक्त स्क्रिप्ट का उपयोग करने से etcआपकी वर्तमान कार्यशील निर्देशिका में निर्देशिका बनाई जाएगी, और इसके भीतर passwdफ़ाइल होगी । बेशक, यह हमेशा उस पथ को निर्दिष्ट करके बढ़ाया जा सकता है जहां आप extractall()फ़ंक्शन के अंदर निकालना चाहते हैं ।


0

unar 7z और RAR सहित लगभग किसी भी प्रारूप को अनारकली करने के लिए काफी सरल प्रोग्राम और टाइप करना आसान है

यह (GNU) ऑब्जेक्टिव-सी में लिखा गया लगता है और इसलिए कुछ gnustep(GNU के ऑब्जेक्टिव-सी कार्यान्वयन) पुस्तकालयों ( gnustep-base-runtimeऔर libgnustep-base1.25) की स्थापना की आवश्यकता होती है

अगर आप aptसुझाए गए पैकेजों को स्थापित करने के लिए उपयोग करते हैं - स्थापना -सुझाव देते हैं या कॉन्फ़िगर किए गए हैं, unarतो कई GUI GNUStep प्रोग्राम सुझाएंगे और इंस्टॉल करेंगे , जो कि वे नहीं चाहते हैं

sudo apt install --no-install-suggests unar 
unar linux-source.tar.xz

यह linux-sourceस्वचालित रूप से आउटपुट डायरेक्टरी बनाएगा ।

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