एक .tar.gz फ़ाइल को निकालने / निकालने के लिए मुझे क्या कमांड चाहिए?


829

मुझे एक क्लाइंट से एक बड़ी .tar.gz फ़ाइल मिली है, जिसमें लगभग 800 mb की इमेज फाइल (जब असम्पीडित है।) हमारी होस्टिंग कंपनी की ftp गंभीरता से धीमी है, इसलिए सभी फाइलों को स्थानीय रूप से निकालना और उन्हें FTP के माध्यम से भेजना व्यावहारिक नहीं है। मैं हमारी होस्टिंग साइट पर .tar.gz फ़ाइल को ftp करने में सक्षम था, लेकिन जब मैं अपनी निर्देशिका में ssh और अनज़िप का उपयोग करने का प्रयास करता हूं, तो यह मुझे यह त्रुटि देता है:

[esthers@clients locations]$ unzip community_images.tar.gz
Archive:  community_images.tar.gz
  End-of-central-directory signature not found.  Either this file is not a zipfile, or it constitutes one disk of a multi-part archive.  In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive.
note:  community_images.tar.gz may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of community_images.tar.gz or community_images.tar.gz.zip, and cannot find community_images.tar.gz.ZIP, period.

एक .tar.gz फ़ाइल की सभी फ़ाइलों को निकालने के लिए मुझे किस कमांड का उपयोग करने की आवश्यकता है?

जवाबों:


1390

man tarअधिक जानकारी के लिए टाइप करें, लेकिन इस कमांड को ट्रिक करना चाहिए:

tar -xvzf community_images.tar.gz

थोड़ा और समझाने के लिए, टार ने सभी फाइलों को एक पैकेज में एकत्र किया community_images.tar,। Gzip प्रोग्राम ने कंप्रेशन लागू किया, इसलिए gz एक्सटेंशन। इसलिए कमांड कुछ चीजें करता है:

  • f: इस आदेश के अंतिम झंडा होना चाहिए, और टार इले तुरंत बाद होना चाहिए। यह संपीड़ित फ़ाइल के नाम और पथ को टार बताता है।
  • z: जी z आईपी का उपयोग करके संग्रह को डिकम्प्रेस करने के लिए टार को बताता है
  • x: टार फ़ाइलों को इकट्ठा कर सकते हैं या ई x पथ उन्हें कर सकते हैं। xबाद करता है।
  • v: टार टॉक बहुत करता है। V erbose आउटपुट आपको निकाले जाने वाली सभी फाइलों को दिखाता है।

5
@ शिकी मैंने आपका प्रस्तावित संपादन देखा। मुझे नहीं लगता कि यह एक उपयुक्त बदलाव है, मैं जिस तरह से इस उपकरण को समझाता हूं वह मुझे पसंद है। मुझे लगता है कि आपका tar -xfसुझाव एक महान अतिरिक्त जवाब देगा।
djeikyb

3
यह इसी तरह से पूछे गए सवालों के लाखों लोगों में से एक बेहतर स्पष्टीकरण है
JohnMerlino

1
@KasunSiyambalapitiya डिफ़ॉल्ट रूप से, वर्तमान फ़ोल्डर में समाप्त होता है। यह भी देखें man tar; -Cविकल्प के लिए देखो । या हो सकता है कि दूसरे उत्तर की जांच करें
d

6
टार के बारे में xckd के लेख की याद दिलाता है मुझे हर बार वापस आना पड़ता है।
mgarey

19
इस के लिए मेरी महामारी है: x पथ z e v *** आईएनजी एफ iles।
अग्रगाम

172

यदि आप चाहते हैं कि फाइलें किसी विशेष गंतव्य पर निकाली जाएं तो आप सुनिश्चित कर सकते हैं कि आप इस मामले में पहले निर्देशिका बना लें, इस मामले में: ~ चित्र / समुदाय-C /destination/path/

उदाहरण:

mkdir ~/Pictures/Community
tar xf community_images.tar.gz -C /home/emmys/Pictures/Community/

आप आसानी से इसे याद कर सकते हैं यदि आप टारिंग टू ई एक्स ट्रैक्ट ए एफ इले पर विचार कर रहे हैं

टर्मिनल पर की गई प्रक्रिया का gif

नोट: याद रखें कि आप खोज ?करने के लिए + पृष्ठों वाले मैन पेजों के अंदर खोज कर सकते हैं और फिर nऔर Nउस अवधि के अगले या पिछले उदाहरण पर जा सकते हैं जिसे आप खोज रहे हैं।


5
" c हैंगिंग डायरेक्टरी" के लिए C को मत भूलना ! इसके अलावा, मुझे लगता है कि हाइफ़न और गैर-हाइफ़न विकल्पों का मिश्रण न करना बेहतर है (विशेषकर उपयोग करते समय भ्रमित करना )। ps
djikybb

2
क्यों यह हर दूसरे कमांड की तरह कभी नहीं है?
जनवरी को जनवरी एम।

6
आई लव
यू

2
एनिमेटेड जिफ़ के लिए 1+
निक स्टील

एक भी उपयोग कर सकते हैं --directory="/home/emmys/Pictures/Community/"(जो मुझे लगता है कि याद रखना आसान है -C)।
पैट्रिक डार्क

107

कुछ बिंदु tarपर ऑटो-डीकंप्रेस में अपग्रेड किया गया था। अब आप सभी की जरूरत है:

tar xf community_images.tar.gz

एक ही स्पष्टीकरण लागू होता है:

  • f: इस आदेश के अंतिम झंडा होना चाहिए, और टार इले तुरंत बाद होना चाहिए। यह संपीड़ित फ़ाइल के नाम और पथ को टार बताता है।
  • x: e x फाइलों को ट्रैक करता है।

कमांड फ्लैग के लिए हाइफ़न की कमी पर ध्यान दें। इसका कारण यह है कि टार के अधिकांश संस्करणों में ग्नू और bsd शैली विकल्प दोनों की अनुमति है (सरल रूप से, ग्नू के लिए हाइफ़न की आवश्यकता होती है, bsd नहीं करता है)।


1
क्या इस पर कोई दस्तावेज है? मैं इस के लिए एक संदर्भ के लिए सभी खोज रहा हूँ, मैं -z ध्वज का उपयोग कभी नहीं और सब कुछ gzipped हो जाता है तो मैं चिंतित हो गया है अगर मैं अपने tarballs बिल्कुल नहीं किया गया है, haha। धन्यवाद।
न्यूरोसैप


3
संभवतः अपने मूल उत्तर को संपादित करने के लिए बेहतर होता।
सेठ

3
@ ऐसा लगता है कि यह एक अलग उत्तर होने के लिए पर्याप्त रूप से अलग महसूस करता है, खासकर इसे नष्ट करने वाले विनाशकारी संपादन के संदर्भ में। मैं इसे काम के बाद फिर से सोचूंगा, हालांकि मैं मूल रूप से सोचा गया विलय करने का एक सरल तरीका हो सकता हूं।
djikybb

2
@EnricoMariaDeAngelis bsd टार कम से कम 2004 से और ग्नू टार कम से कम 2010 के बाद से ऑटो-डिसमॉपर को चुनने का समर्थन किया है। यह संभव नहीं है "हाल ही में" (इस सदी? नब्बे के दशक?) टार के संस्करण मैन्युअल रूप से एक डिकम्प्रेसर का चयन करने की आवश्यकता है।
djeikyb

11

के लिए सभी झंडे को याद tarकरना थकाऊ हो सकता है। अप्रचलित XKCD:

यहां छवि विवरण दर्ज करें

इसलिए मैंने ऐसा करने के लिए पायथन में अपनी छोटी स्क्रिप्ट बनाई। त्वरित, गंदा, cpउपयोग में समान:

#!/usr/bin/env python3
import tarfile,sys,os
tf = tarfile.open(name=sys.argv[1],mode='r:gz')
where = '.'
if len(sys.argv) == 3:
    where = sys.argv[2]
tf.extractall(path=where)
tf.close()

इसे इस प्रकार प्रयोग करें:

myuntar.py archive.tar

ज़िप अभिलेखागार के लिए भी समान स्क्रिप्ट देखें ।


2
:) -cafफाइलनाम के आधार पर बनाने और -xfनिकालने के लिए याद करने के लिए केवल दो टार झंडे (AFAIK हर प्रकार के टार पर काम करता है)।
वीडियोनौथ

@Videonauth मुझे पता है, यह इतना जटिल नहीं है, लेकिन किसी कारण से मुझे ये विकल्प याद नहीं हैं। हो सकता है क्योंकि मैं अभिलेखागार के साथ अक्सर पर्याप्त व्यवहार नहीं करता।
सेर्गेई कोलोडियाज़नी

क्या यह केवल टार्ज़ फ़ाइलें gzipped करेगा? एपीआई डॉक्स पारदर्शी संपीड़न के साथ पढ़ने के लिए एक मोड का उल्लेख करते हैं; कि अधिक व्यवहार करेंगे tar xf <file>?
djikybb

7

शीघ्र जवाब:

tar -xvf  <.tar file> or <.tar.xz file>
tar -xzvf <.tar.gz file>
tar -xjvf <.tar.bz2 file>

[ नोट ]:

  • -v क्रियाशील सूची फ़ाइलों को संसाधित किया गया।
  • -z संग्रह को gzip के माध्यम से फ़िल्टर करें।
  • -f आर्काइव फ़ाइल या डिवाइस ARCHIVE का उपयोग करें।
  • -x संग्रह से फ़ाइलें निकालें।
  • -j bzip2।
  • tar -xfark.tar # से सभी फाइलों को निकालें archive.tar

4

मामले में आप .tar.gzका उपयोग कर फ़ाइल निकालने में सक्षम नहीं हैं

tar -xvzf fileName.tar.gz

का उपयोग करके निकालने का प्रयास करें

tar xf fileName.tar.gz

4
अगर यह एक gzipped टार फाइल है, तो पहला कमांड हमेशा काम करेगा। यदि यह काम नहीं करता है, तो आपके पास एक गज़्ड टार फ़ाइल नहीं है। बाद की कमान उन लोगों के लिए एक बड़ी सिफारिश है जो परवाह नहीं करते हैं कि उनके टार फाइल पर कम्प्रेशन एल्गोरिथ्म का उपयोग किया गया था।
djeikyb

0

आप पहले चरण में भी ऐसा कर सकते हैं:

gunzip community_images.tar.gz

तब आपके पास फ़ाइल है: community_images.tar

दूसरा कदम होगा:

tar -xvf community_images.tar

और * .tar फाइल निकाली जाएगी।


0

tar xvf file.tar.gz

  • एक्स एक्सट्रैक्ट के लिए
  • v क्रिया के लिए (सूची फ़ाइलें)
  • फ़ाइल नाम के लिए f अगला है

टार के किसी भी दूरस्थ आधुनिक संस्करण को स्वतः पता लगाना चाहिए कि संग्रह gzipped है, और आपके लिए "z" जोड़ें।

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