मैं टार की सामग्री कैसे देख सकता हूं । कमांड लाइन से निकालने के बिना जीजेड फ़ाइल?

मैं एक संग्रह की सामग्री (फ़ाइलों और फ़ोल्डरों की सूची) देखना चाहता हूं, उदाहरण के लिए ए tar.gz फ़ाइल निकालने के बिना यह.

क्या ऐसा करने के लिए कोई तरीके हैं?

टार की सामग्री को देखने के लिए टर्मिनल में नीचे दिए गए कमांड को चलाएं । इसे निकालने के बिना जीजेड फ़ाइल:

tar -tf filename.tar.gz

- टी, -- सूची
एक संग्रह की सामग्री को सूचीबद्ध करें । तर्क वैकल्पिक हैं । दिए जाने पर, वे सदस्यों के नाम सूचीबद्ध करने के लिए निर्दिष्ट करते हैं ।

- च, --फ़ाइल=संग्रह संग्रह फ़ाइल या डिवाइस संग्रह का उपयोग करें । ..

आप विम का भी उपयोग कर सकते हैं

vim filename.tar.gz

less भी खोल सकते हैं gz- संकुचित और असम्पीडित tar अभिलेखागार। यह आपको एक प्यारा देता है ls -l स्टाइल आउटपुट भी:

$ less ~/src/compiz_0.9.7.8-0ubuntu1.6.debian.tar.gzdrwxrwxr-x 0/0               0 2012-09-21 11:41 debian/drwxrwxr-x 0/0               0 2012-08-09 13:32 debian/source/-rw-rw-r-- 0/0              12 2012-08-09 13:32 debian/source/format-rw-rw-r-- 0/0              25 2012-08-09 13:32 debian/libdecoration0-dev.docs-rw-rw-r-- 0/0              25 2012-08-09 13:32 debian/compiz-dev.docs-rw-rw-r-- 0/0             347 2012-08-09 13:32 debian/compiz-core.install-rw-rw-r-- 0/0             125 2012-08-09 13:32 debian/libdecoration0-dev.install...

और क्योंकि यह है less, आप इसके माध्यम से स्क्रॉल कर सकते हैं, इसे खोज सकते हैं, आदि । हालांकि यह अन्य संपीड़न एल्गोरिदम (मेरे अनुभव में) के साथ बुरी तरह विफल रहता है ।

आप जेड कमांड का उपयोग कर सकते हैं: zcat, zless, zgrep.

एक फाइल सामग्री का उपयोग देखने के लिए:

zcat file.gz   

कुछ उपयोग करने के लिए:

zgrep test file.gz   

फ़ाइलों के उपयोग के बीच अंतर की जांच करने के लिए:

zdiff file1.gz file2.gz

ये केवल कुछ उदाहरण हैं, कई और भी हैं ।

खैर, यह फाइल पर निर्भर करता है । अधिकांश (डी)संपीड़न कार्यक्रमों में एक ध्वज होता है जो एक संग्रह की सामग्री को सूचीबद्ध करता है ।

  1. tar/tar.gz/tgz/tar.xz/tar.bz2/tbz फ़ाइलें

    $ tar tf foo.tgz dir1/dir1/subdir1/dir1/subdir1/filedir1/subdir2/dir1/subdir2/filedir2/
  2. zip फ़ाइलें

    $ zip -sf foo.zip Archive contains:  dir1/  dir2/  dir1/subdir1/  dir1/subdir1/file  dir1/subdir2/  dir1/subdir2/fileTotal 6 entries (0 bytes)
  3. 7zip फ़ाइलें

    $ 7z l foo.7z 7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18p7zip Version 9.20 (locale=en_US.utf8,Utf16=on,HugeFiles=on,4 CPUs)Listing archive: foo.7z--Path = foo.7zType = 7zSolid = -Blocks = 0Physical Size = 168Headers Size = 168   Date      Time    Attr         Size   Compressed  Name------------------- ----- ------------ ------------  ------------------------2015-03-30 19:00:07 ....A            0            0  dir1/subdir1/file2015-03-30 19:00:07 ....A            0            0  dir1/subdir2/file2015-03-30 19:07:32 D....            0            0  dir22015-03-30 19:00:07 D....            0            0  dir1/subdir22015-03-30 19:00:07 D....            0            0  dir1/subdir12015-03-30 19:00:06 D....            0            0  dir1------------------- ----- ------------ ------------  ------------------------                                     0            0  2 files, 4 folders
  4. rar फ़ाइलें

     $ rar v foo.rar RAR 4.20   Copyright (c) 1993-2012 Alexander Roshal   9 Jun 2012Trial version             Type RAR -? for helpArchive foo.rarPathname/Comment                  Size   Packed Ratio  Date   Time     Attr      CRC   Meth Ver------------------------------------------------------------------------------- dir1/subdir1/file                     0        8   0% 30-03-15 19:00 -rw-r--r-- 00000000 m3b 2.9 dir1/subdir2/file                     0        8   0% 30-03-15 19:00 -rw-r--r-- 00000000 m3b 2.9 dir1/subdir1                     0        0   0% 30-03-15 19:00 drwxr-xr-x 00000000 m0  2.0 dir1/subdir2                     0        0   0% 30-03-15 19:00 drwxr-xr-x 00000000 m0  2.0 dir1                     0        0   0% 30-03-15 19:00 drwxr-xr-x 00000000 m0  2.0 dir2                     0        0   0% 30-03-15 19:07 drwxr-xr-x 00000000 m0  2.0-------------------------------------------------------------------------------    6                0       16   0%

यह सबसे अधिक लोकप्रिय संग्रह प्रारूप है । इस सब को ध्यान में रखते हुए, आप एक छोटी सी स्क्रिप्ट लिख सकते हैं जो आपके द्वारा दी गई फ़ाइल के विस्तार के आधार पर उपयुक्त कमांड का उपयोग करती है:

#!/usr/bin/env bashfor file in "$@"do    printf "\n-----\nArchive '%s'\n-----\n" "$file"    ## Get the file's extension    ext=${file##*.}    ## Special case for compressed tar files. They sometimes    ## have extensions like tar.bz2 or tar.gz etc.    [[ "$(basename "$file" ."$ext")" =~ \.tar$ ]] && ext="tgz"    case $ext in        7z)            type 7z >/dev/null 2>&1 && 7z l "$file" ||             echo "ERROR: no 7z program installed"            ;;        tar|tbz|tgz)            type tar >/dev/null 2>&1 && tar tf "$file"||             echo "ERROR: no tar program installed"            ;;        rar)            type rar >/dev/null 2>&1 && rar v "$file"||             echo "ERROR: no rar program installed"            ;;        zip)            type zip >/dev/null 2>&1 && zip -sf "$file"||             echo "ERROR: no zip program installed"            ;;        *)            echo "Unknown extension: '$ext', skipping..."            ;;    esacdone

उस स्क्रिप्ट को अपने में सहेजें PATH और इसे निष्पादन योग्य बनाएं। फिर आप किसी भी संग्रह की सामग्री को सूचीबद्ध कर सकते हैं:

$ list_archive.sh foo.rar foo.tar.bz foo.tar.gz foo.tbz foo.zip-----Archive 'foo.rar'-----RAR 4.20   Copyright (c) 1993-2012 Alexander Roshal   9 Jun 2012Trial version             Type RAR -? for helpArchive foo.rarPathname/Comment                  Size   Packed Ratio  Date   Time     Attr      CRC   Meth Ver------------------------------------------------------------------------------- dir1/subdir1/file                     0        8   0% 30-03-15 19:00 -rw-r--r-- 00000000 m3b 2.9 dir1/file                     0        8   0% 30-03-15 19:29 -rw-r--r-- 00000000 m3b 2.9 dir1/subdir1                     0        0   0% 30-03-15 19:00 drwxr-xr-x 00000000 m0  2.0 dir1                     0        0   0% 30-03-15 19:29 drwxr-xr-x 00000000 m0  2.0 dir2                     0        0   0% 30-03-15 19:07 drwxr-xr-x 00000000 m0  2.0-------------------------------------------------------------------------------    5                0       16   0%-----Archive 'foo.tar.bz'-----dir1/dir1/subdir1/dir1/subdir1/filedir1/filedir2/-----Archive 'foo.tar.gz'-----dir1/dir1/subdir1/dir1/subdir1/filedir1/filedir2/-----Archive 'foo.tbz'-----dir1/dir1/subdir1/dir1/subdir1/filedir1/filedir2/-----Archive 'foo.zip'-----Archive contains:  dir1/  dir1/subdir1/  dir1/subdir1/file  dir1/file  dir2/Total 5 entries (0 bytes)

और चूंकि किसी ने उल्लेख किया है कि कम संपादक, स्वाभाविक रूप से, एमएसीएस भी ऐसा कर सकते हैं:

tarकी की -t ध्वज आपके लिए सामग्री सूचीबद्ध करेगा । इसे अपने अन्य झंडों में जोड़ें (इसलिए -tvfz एक के लिए tar.gz, -tvfj एक के लिए tar.bz2, आदि) और आप निकालने के बिना ब्राउज़ कर सकते हैं । वहां से आप सिंगल फाइल को काफी आसानी से निकाल सकते हैं

tar -xvfz mybackup.tar.gz path/to/file

के साथ बड़ी समस्या tar है सभी को याद अन्य झंडे. इसलिए मैं आमतौर पर भरोसा करता हूं 7z (का p7zip-full पैकेज) मेरे सभी संग्रह करने के लिए । मैं दावा नहीं करूंगा कि यह पूरी तरह से बेहतर है लेकिन यह लगभग हर चीज का समर्थन करता है (संपीड़न प्रकार निर्दिष्ट किए बिना) और तर्क तार्किक हैं ।

7z l archive.ext7z e archive.ext path/to/file

यह निश्चित रूप से कम सक्षम है, लेकिन आप नहीं जरूरत है इसका उपयोग करने के लिए मैन पेज।

मध्यरात्रि कमांडर भी है (mc). यह अर्ध-ग्राफिकल टर्मिनल-आधारित फ़ाइल प्रबंधन के लिए एक ऑल-अराउंड बदमाश है और कुछ प्रकाश परीक्षण के साथ यह आपको दोनों में ब्राउज़ करने देता है .tar.gz और .7z अभिलेखागार। मुझे यकीन नहीं है कि यह कितने अन्य लोगों का समर्थन करता है ।

उपयोग क्यों नहीं vim अपने संग्रह को ब्राउज़ करने और फ़ाइलों को खोलने के लिए (कम से कम पाठ जैसी फ़ाइलें):

vim archive.tar.gz

enter image description here

स्क्रॉल करने के लिए तीर कुंजी दबाएँ और Enter फ़ाइल खोलने के लिए ।

आधी रात कमांडर (mc) एक अच्छा संपीड़ित फ़ाइल दर्शक भी है, हालांकि मैं इसे एमसी के बाद से थोड़ा धोखा मानता हूं है एक फ़ाइल प्रबंधक, एक पाठ-आधारित एक के बावजूद।

साथ ही, यदि आप केवल यह देखना चाहते हैं कि संपीड़ित अभिलेखागार के अंदर क्या है, तो आप प्रत्येक कंप्रेसर के लिए "दृश्य" कमांड सीख सकते हैं । tar tzvf आपको टार फ़ाइल की सामग्री दिखाएगा, unzip -l यह एक ज़िप फ़ाइल के लिए करेगा, और इसी तरह ।

lesspipe के भाग के रूप में डिफ़ॉल्ट रूप से स्थापित एक शेल स्क्रिप्ट है less पैकेज जो एक की सामग्री को सूचीबद्ध कर सकता है tar.gz पुरालेख, साथ ही अन्य सामान्य संग्रह फ़ाइल स्वरूपों की एक श्रृंखला ।

$ lesspipe example.tar.gzdrwxrwxr-x ubuntu/ubuntu     0 2018-11-16 05:32 example/-rw-rw-r-- ubuntu/ubuntu     7 2018-11-16 05:32 example/ask.txt-rw-rw-r-- ubuntu/ubuntu     7 2018-11-16 05:32 example/ubuntu.txt

इसे कहा जाता है less कमांड (ओली का जवाब देखें) एक इनपुट प्रीप्रोसेसर के रूप में यदि $LESSOPEN पर्यावरण चर उचित रूप से सेट किया गया है ।

अगर रोमांच महसूस हो रहा है, तो एक चोटी लें vi /usr/bin/lesspipe यह देखने के लिए कि यह किन आदेशों का उपयोग करता है । मिलान करने वाली फ़ाइलों के लिए tar.gz विस्तार, हम देख सकते हैं कि यह उपयोग करता है tar tzvf के साथ हुड के तहत --force-local की एक अस्पष्ट सुविधा को अक्षम करने का विकल्प tar यह अन्यथा भ्रमित करेगा फ़ाइल नाम में कॉलन रिमोट टेप ड्राइव का उपयोग करने के लिए कमांड के साथ:

*.tar.gz|*.tgz|*.tar.z|*.tar.dz)        tar tzvf "$1" --force-local

ध्यान दें कि क्योंकि यह मुख्य रूप से एक प्रीप्रोसेसर के रूप में डिज़ाइन किया गया है less, यदि यह फ़ाइल प्रकार को नहीं पहचानता है तो यह कुछ भी आउटपुट नहीं करेगा । मैंने देखा कि कुछ .tar.gz मेरे द्वारा डाउनलोड की गई फ़ाइलें काम नहीं करेंगी क्योंकि वे फ़ाइल नाम के बावजूद वास्तव में गज़िप संपीड़न का उपयोग नहीं करते थे ।

का उपयोग करना view filename.tar.gz भी काम करेंगे । उसी तरह से विम करता है, लेकिन लिखने की अनुमति के बिना ।

फ़ाइलों में ब्राउज़ करने के लिए विम का उपयोग करें