अनटार, अनज, जीजी, टार - आपको सभी उपयोगी विकल्प कैसे याद हैं?


76

मुझे पूरा यकीन है कि मैं निम्नलिखित समस्या के साथ केवल एक ही नहीं हूँ: हर बार जब मुझे एक फ़ाइल को * nix में अनसुना करने की आवश्यकता होती है, तो मैं सभी स्विच को याद नहीं रख सकता, और इसे गुगली करना समाप्त कर सकता हूं, जो इस बात पर विचार कर रहा है कि मुझे कितनी बार चाहिए यह करो।

क्या आपके पास एक अच्छा संपीड़न धोखा शीट है? या कैसे उन सभी गंदा टार में स्विच के लिए एक महामारी के बारे में?

मैं इस लेख को विकी बना रहा हूं ताकि हम यहां एक अच्छा धोखा पत्र बना सकें।

ओह, और मैन पेज के बारे में: क्या कोई एक चीज है जिसके लिए वे सहायक नहीं हैं, यह पता लगाने के लिए है कि किसी फाइल को कैसे अनकैप किया जाए।


1
मैन्युअल पृष्ठों का उपयोग करें, फिर आपको एक विकी नहीं बनाना है, और केवल मैन कमांड को याद रखना है :-) आदमी (1)
फ्लोरेंज केली

9
eXtract Zee File यह है कि मैं इसे कैसे याद करता हूँ
कनाडाई ल्यूक

बनाएँ Zee Vocking फ़ाइल .tar.gz बनाने के लिए उपयुक्त हो सकती है
CousinCocaine

जवाबों:


65

या उन्नत पूर्ण क्षमताओं के साथ शेल का उपयोग करने के बारे में कैसे (जैसे ज़श या ताज़े संस्करण) जो व्यापक मदद से आपके लिए विकल्प पूरा करेगा? :))

टार के बारे में: बस "क्वर्टी" कीबोर्ड देखें। एक दूसरे के बगल में "zxcvf" अक्षर हैं। आपको "tar czvf file.tar.gz files" या "tar xzvf file.tar.gz" की आवश्यकता है।


वास्तव में सवाल का जवाब देने के लिए सहारा :)

अब, यह एक "शांत" टिप है! :)

जबरदस्त कमाल!
मृतप्राय:

2
एक और टिप यह है कि तार के आधुनिक संस्करणों के साथ निकालने पर zविकल्प (या फ़ाइलों के jलिए विकल्प .bz2) की आवश्यकता नहीं है। यह फ़ाइल को स्वचालित रूप से खोल देता है।
नैट

10
मैंने लगभग दस बिलियन बार टार का उपयोग किया है और इस बात पर कभी गौर नहीं किया है कि कीबोर्ड पर एक दूसरे के बगल में सभी सबसे अधिक उपयोग किए जाने वाले विकल्प सही हैं। हेडस्मैक
टायलर मैकहेनरी 14

41

टार विकल्प सारांश

अधिक गूढ़ स्विच जोड़ने के लिए इसे संपादित करने के लिए Y'all का स्वागत है, लेकिन यहां मूल बातें हैं:

  • एक्स - फ़ाइलें निकालें
  • c - आर्काइव बनाएं
  • टी - सूची फ़ाइलें
  • v - वर्बोज़ (इसे संसाधित करता है जैसे सूची फ़ाइलें)
  • j - bz2 कम्प्रेशन का उपयोग करें
  • z - gz कम्प्रेशन का उपयोग करें
  • f - डिस्क पर फाइल पढ़ना या लिखना

उदाहरण

एक tar.gz फ़ाइल को खोलें : tar zxf tarball.tar.gz

एक tar.bz2 फ़ाइल को खोलें : tar jxf tarball.tar.bz2

Tar.gz फ़ाइल बनाएँ: tar zcvf tarvall.tar.gz mydir / *


23

एक छोटा सा पर्ल स्क्रिप्ट है जिसे "अनप" कहा जाता है।

unp filename.tar.gz

... और यह सब कुछ निकालता है। किसी भी संपीड़ित फ़ाइल के साथ काम करता है जब तक आपके पास सही बायनेरी है। और आप सिंटैक्स या उस बकवास में से किसी के बारे में भूल जाते हैं। अपने लिनक्स वितरण के रिपॉजिटरी की जाँच करें। यह वहाँ होना चाहिए (कम से कम आर्क, डेबियन और उबंटू पर)।


यहां तक ​​कि काफी लंबे समय तक टार का उपयोग करने के बाद भी मुझे बेवकूफ झंडे के लिए Google की आवश्यकता है। unp जाने का रास्ता है।
यदा

8

वास्तव में एक लगातार उपयोग के साथ मैं एक्स (एक्स) डेटा और कंप्रेसिंग (सी) डेटा निकालने के बीच अंतर करता हूं:

निकालना:

tar xzf data.tgz

सिकुड़ जाना:

tar czf data.tgz

इसके अलावा आप दो कार्यों को भी जोड़ सकते हैं।

function extract () {     
        if ($# -ne 1); then
                echo "Usage: $0  `<compressed archive>"`
                exit 1
        fi
        tar xzf $1
}

function compress () {
        if ($# -ne 2); then
                echo "Usage: $0 `<compressed archive> <files|directories>"`
                exit 1
        fi
        tar czf $1 $2
}

एक और अच्छा निकालने का कार्य है, यह आपकी संपीड़ित फ़ाइल के विस्तार का पता लगाता है और आपके लिए काम करता है:

extract () {
   if [ -f $1 ] ; then
       case $1 in
           *.tar.bz2)   tar xvjf $1    ;;
           *.tar.gz)    tar xvzf $1    ;;
           *.bz2)       bunzip2 $1     ;;
           *.rar)       unrar x $1       ;;
           *.gz)        gunzip $1      ;;
           *.tar)       tar xvf $1     ;;
           *.tbz2)      tar xvjf $1    ;;
           *.tgz)       tar xvzf $1    ;;
           *.zip)       unzip $1       ;;
           *.Z)         uncompress $1  ;;
           *.7z)        7z x $1        ;;
           *)           echo "don't know how to extract '$1'..." ;;
       esac
   else
       echo "'$1' is not a valid file!"
   fi
 }

5

बस टाइप करें tar --helpऔर आपकी चीटशीट है।


12
गंभीरता से, क्या आपने कभी उस आदमी पृष्ठ को पढ़ने की कोशिश की है?
deadprogrammer

यह थोड़ा अपठनीय और लंबा हो सकता है लेकिन मुझे लगता है कि यह सिर्फ एक विकल्प के नाम को देखने के लिए अच्छी तरह से काम करता है। आप उस विकल्प के लिए भी grep कर सकते हैं जिसे आप खोज रहे हैं, यानी 'tar --help | grep का अर्क ’।
जेरेमी रुटेन

1
महान। और फिर आपको एक मैन-पेज के माध्यम से उतारा करना होगा (आप जिस सामान की तलाश कर रहे हैं) आपको बताता है कि डेवलपर की जरूरतों को छोड़कर, पुरातन स्ट्रीमर कमांड और विकल्प दोपहर के टन।

2
मैं वास्तव में नहीं देखता कि इसके बारे में क्या मुश्किल है। एक पुरालेख निकालने के लिए, केवल निकालने का विकल्प ढूंढें और अपने कमांड में -x जोड़ें। यदि आप इसे क्रिया चाहते हैं, तो उस विकल्प को ढूंढें और प्राप्त करने के लिए av जोड़ें -xv। तब तक जारी रखें, जब तक कि आप सटीक कमांड नहीं चाहते। यहां तक ​​कि इसके पास सामान्य कार्यों के लिए उदाहरण कमांड भी हैं।
जेरेमी रूतेन

1
जेरेमी, असली समस्या यह है कि आप हमेशा उचित शब्दावली नहीं जानते होंगे। जैसे, भ्रमित होना आसान है और समान विकल्प ढूंढना और उन्हें काम नहीं करना है। फिर, आपको उनमें से (कुछ) को उचित क्रम में रखना होगा। यह किसी के लिए गैर-तुच्छ है जो विंडोज से दूर जा रहा है। और भी-तो अगर वे विंडोज में स्क्रिप्टिंग नहीं जानते थे।
नाज़ादुस 15

3

यदि आपको टार विकल्पों को याद रखने में परेशानी है, तो पाइप का उपयोग करके देखें:

  • zcat file.tar.gz | tar xvf -
  • bzcat file.tar.bz2 | tar xvf -

टारबॉल की सामग्री को देखने के tar xvसाथ बदलें tar tv

व्यक्तिगत रूप से, मैं निम्नलिखित मंत्र का उपयोग करता हूं:

  • टी, एक्स, या सी के लिए "सारणीबद्ध", "ऑक्ट्रेक्टिंग", या "बनाना", क्रमशः।
  • v सभी फाइलों को सूचीबद्ध करने के लिए।
  • z, j, या tar.gz, tar.bz2, या सादा .tar के लिए क्रमशः कुछ भी नहीं।
  • फ़ाइल नाम देने के लिए f, stdin / stdout या टेप डिवाइस का उपयोग करने का डिफ़ॉल्ट।

हालाँकि "j" और "bzip2" का एक-दूसरे से कोई लेना-देना नहीं है, फिर भी मुझे इस अपवाद को याद रखना आसान लगता है।

इसके अलावा, मुझे यह हास्यास्पद लगता है कि Googling ने "मैन टार" को बदल दिया है।


आपको हमेशा fविकल्प प्रदान करने की आदत डालनी चाहिए : यह हाल ही में टार डिफॉल्ट के वितरण f -, ऐतिहासिक डिफ़ॉल्ट f /dev/rmt0या समान है। सब के बाद, टार टेप ARchiver है।
ephemient

1
क्या हो रहा है?
क्लाउडीयू


2

तीन सबसे अक्सर इस्तेमाल किया संचालन :

--create -c

एक नया टार संग्रह बनाएं।

--list -t

किसी पुरालेख की सामग्री को सूचीबद्ध करें।

--extract -x

एक संग्रह से एक या अधिक सदस्य निकालें।


पांच उन्नत टार संचालन :

--append -r

पहले से मौजूद संग्रह में नई प्रविष्टियाँ जोड़ें।

--update -u

संग्रह के अंत में संग्रह के सदस्यों की हाल की प्रतियां जोड़ें, अगर वे मौजूद हैं।

--concatenate --catenate -A

किसी अन्य संग्रह के अंत में एक या एक से अधिक पहले से मौजूद अभिलेखागार जोड़ें।

--delete

एक संग्रह से आइटम हटाएं (टेप पर काम नहीं करता है)।

--compare --diff -d

फ़ाइल सिस्टम में संग्रह के सदस्यों की उनके समकक्षों से तुलना करें।



2

मैं हमेशा टाइप करते समय अपने दिमाग में आज्ञाओं को पढ़ता हूं

वर्बोज़ ज़िप-फ़ाइल को संपीड़ित करें

tar cvzf FILE

क्रिया ज़िप फ़ाइल फ़ाइल निकालें

tar xvzf FILE

2

मैं निम्न कार्य करता हूं

एक टार बनाने के लिए:

tar czvf foo.tar.gz <files to be included>

असत्य करना:

tar zxvf foo.tar.gz

ये प्राथमिक स्विच होने चाहिए जिनकी आपको चिंता करने की आवश्यकता है:

c - create
z - compress/uncompress
x - extracte
v - verbose
f - file

आप कुछ हठधर्मी सामान जैसे टार और अनटार इनलाइन कर सकते हैं जब आप फाइलों को निर्देशिकाओं में स्थानांतरित करने की कोशिश कर रहे हों जैसे:

tar cf - <files to be copied> | (cd <target directory>; tar xvf - )

1

90% समय मैं सिर्फ उपयोग करता हूं

tar -xvf file.*  

x: एक्सट्रैक्ट
v: वर्बोज़ (वैकल्पिक)
f: इनपुट फ़ाइल (टार, gz, bzip2, आदि) ...

आसान है, है ना? :)
यदि आप कंसोल में नहीं हैं तो फिलरोलर या आर्क का उपयोग करें।


अब तक, मैं फाइलरोलर का उपयोग कर रहा हूं, लेकिन वर्तमान में मैं भाग्य से बाहर हूं क्योंकि मेरे पास 1.1 जीबी मेमोरी का उपयोग है।
एंड्रयू ग्रिम

1

मैं एक पर्ल स्क्रिप्ट का उपयोग कर रहा हूं , जो कई सालों aunpackसे एटूल प्रोजेक्ट का हिस्सा है । तो आप बस चलाते हैं: aunpack foo.{zip/tar.gz/tar.bz2}और यह फ़ाइल एक्सटेंशन के आधार पर सही काम करता है।

इसका अन्य लाभ aunpackयह है कि यह बहुत सारी फाइलों के साथ वर्तमान निर्देशिका को प्रदूषित नहीं करेगा। कहते हैं foo.zipकि 20 फाइलें हैं जो एक उपनिर्देशिका में नहीं हैं। वर्तमान निर्देशिका में इन फ़ाइलों को उगलने के बजाय, aunpackएक fooउपनिर्देशिका बनाएंगे और सभी फ़ाइलों को वहां डाल देंगे ।


1

आप सभी की जरूरत है tar x(stdin से उद्धरण), tar c(stdout में टार), gzip -c(; stdout में stdin से gzip -1के -9संपीड़न के स्तर के लिए, एक ही के लिए चला जाता bzip2है) और gunzip -c(stdout में stdin से gunzip) - सब कुछ पाइप है।

टार और गज़िप करने के लिए:

$ tar c * | gzip -c > out.tar.gz

अन-गज़िप और अनटार करने के लिए

$ gunzip -c < out.tar.gz | tar x

यदि आप मीठी प्रगति पट्टी चाहते हैं, तो pv का उपयोग करें जो बिल्ली के समान है लेकिन प्रगति सलाखों को दिखाता है:

$ tar c * | bzip2 -c | pv > out.tar.gz
 22.6MiB 0:00:03 [3.64MiB/s] [  <=>                           ]
$ pv in.tar.gz | bunzip2 -c | tar x
   80MiB 0:00:00 [  58MiB/s] [===============================>] 100%

0

मुझे लगता है कि यह सोचना आसान है कि आप क्या चाहते हैं और सिर्फ कुछ पत्र नहीं।

उदाहरण के लिए, मैं file.tar.gz निकालने के लिए एक उदाहरण का उपयोग करूंगा:

चूंकि यह टार फाइल है, इसलिए आपको टार प्रोग्राम का उपयोग करना चाहिए। तो यह विकल्प है:

  1. एक्स के बाद से आप एक्स पथ चाहते हैं ।
  2. यदि फ़ाइल .gz के साथ समाप्त होती है। (फ़ाइल नाम में टार के बाद gz है) यह विकल्प आर्काइव को गनज़िप करता है।
  3. फ़ाइल के लिए f संग्रह नाम के बाद आता है।

यह नीचे दिए गए उदाहरण में दिखाया गया है:

tar xzf file.tar.gz

0

जिस तरह से मुझे याद है कि यह हमेशा "टार XXvf" है, जहां दो एक्स हैं

  • एक्स के लिए एक्स एक्स या सी के लिए सी रीट और
  • या तो z = gzip, j = bzip2 (gzip अधिक सामान्य है, इसलिए यह आमतौर पर z है, जो भी कारण के लिए j = bzip2 मेरे सिर में बस अटक गया है)।

कभी-कभी आप जहां जोड़ने संकुचित लेकिन tarred नहीं फ़ाइलों में चलाने संयुक्त राष्ट्र जो कुछ भी संपीड़न प्रकार है। जैसे जी अन जिप या बी अन जिप 2।

अगर कुछ भी हो, तो मैं 2 को भूल जाता हूं और कभी-कभी "bzip" टाइप करता हूं।


0

आप एक उपनाम भी बना सकते हैं। बस इन दो पंक्तियों को अपनी ~/.bash_aliasesफ़ाइल में जोड़ें:

alias untar="tar xvf"
alias dotar="tar cvf"

आप तब untar foo.tar.gzनिकालने और dotar foo.barसंपीड़ित करने के लिए उपयोग कर सकते हैं । आप अन्य उपनामों का उपयोग कर सकते हैं जो आपके लिए याद रखना आसान है।


0

C reate Z IP से F ilename

tar -czf myfile.tar.gz myfile.sql

एक्स पथ Z आईपी F ilename के साथ

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