कमांड-लाइन से निकाले बिना मैं tar.gz फ़ाइल की सामग्री कैसे देख सकता हूँ?


243

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

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

जवाबों:


261

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

tar -tf filename.tar.gz

टर्मिनल में संकुचित टारबॉल फ़ाइलों को सूचीबद्ध करने का स्क्रीनशॉट

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


1
इन सभी उदाहरणों को संकुचित फ़ाइल के अंदर देखने के लिए अन्य प्रकार के प्रारूप पर भी काम करता है। जैसे जिप, रार, टार आदि?
Ciasto piekarz

3
tar -tvf xxx.tgzयह फाइलों की डिटेल प्रॉपर्टीज भी दिखाएगा।
एरिक वांग

4
treeएक पेड़ के दृश्य को देखने के लिए इसे पाइप करेंtar -tf filename.tar.gz | tree
ब्लॉक

unzip -lunrar -l
Zip

यदि आप एक विशिष्ट गहराई / स्तर तक सूचीबद्ध करना चाहते हैं तो केवल यहां देखें ।
holzkohlengrill

119

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

vim filename.tar.gz

8
यह कमाल का है। आप फ़ाइलों की सामग्री भी देख सकते हैं!
निको

1
या पूर्व संपादक का उपयोग करें ex +%p foo.tar.gz:।
kenorb

@Nico आप इसका उपयोग tgz के भीतर फ़ाइल की सामग्री को देखने के लिए कैसे करते हैं?
१२५२ 14४

1
जब आप v फ़ाइल को vim ( vim file.tar.gz) के साथ खोलते हैं, तो यह कहती है "कर्सर के साथ एक फ़ाइल चुनें और ENTER दबाएँ"। आप बस ऐसा करते हैं, कर्सर को एक फाइल पर ले जाते हैं और एंटर दबाते हैं।
निको

2
विशाल संग्रह के साथ आपको बस धैर्य रखना होगा। यह फ़ोल्डर संरचना लोड करने के लिए बहुत लंबा हो सकता है। :-)
ह्यूगो एच।

41

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

$ less ~/src/compiz_0.9.7.8-0ubuntu1.6.debian.tar.gz
drwxrwxr-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, आप इसके माध्यम से स्क्रॉल कर सकते हैं, इसे खोज सकते हैं, आदि। हालांकि यह अन्य संपीड़न एल्गोरिदम (मेरे अनुभव में) के साथ बुरी तरह विफल रहता है।


4
मेरे लिए काम नहीं किया। बाइनरी फ़ाइल के रूप में प्रदर्शित।
जेरोमजे

2
आप सुनिश्चित करें कि आपके पास aliasविशेष विकल्प नहीं हैं, इसके लिए lessआप यहाँ नहीं दिखा रहे हैं? मैंने बस देखने की कोशिश की, लेकिन यह काम नहीं किया। मेरे पास कोई भी अलाइंस सेटअप नहीं है less
code_dredd

36

आप z आदेश का उपयोग कर सकते हैं: zcat, zless, zgrep

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

zcat file.gz   

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

zgrep test file.gz   

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

zdiff file1.gz file2.gz

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


9

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

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

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

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

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

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


t-ar हुआ करता था और नाम वास्तव में टेप अभिलेखागार के लिए खड़ा है , जो क्रमिक रूप से चिल्लाता है और कई मामलों में PIA है। विशेष रूप से अपरिहार्य डबल टार + जीजी के रूप में यह सिर्फ क्रूर है। साथ ही अब 7zip पर जा रहे हैं।
फ्रैंक नॉक

9

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

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

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

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

    $ 7z l foo.7z 
    
    7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
    p7zip Version 9.20 (locale=en_US.utf8,Utf16=on,HugeFiles=on,4 CPUs)
    
    Listing archive: foo.7z
    
    --
    Path = foo.7z
    Type = 7z
    Solid = -
    Blocks = 0
    Physical Size = 168
    Headers Size = 168
    
       Date      Time    Attr         Size   Compressed  Name
    ------------------- ----- ------------ ------------  ------------------------
    2015-03-30 19:00:07 ....A            0            0  dir1/subdir1/file
    2015-03-30 19:00:07 ....A            0            0  dir1/subdir2/file
    2015-03-30 19:07:32 D....            0            0  dir2
    2015-03-30 19:00:07 D....            0            0  dir1/subdir2
    2015-03-30 19:00:07 D....            0            0  dir1/subdir1
    2015-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 2012
    Trial version             Type RAR -? for help
    
    Archive foo.rar
    
    Pathname/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 bash

for 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..."
            ;;
    esac
done

उस स्क्रिप्ट को अपने में सहेजें 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 2012
Trial version             Type RAR -? for help

Archive foo.rar

Pathname/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/file
dir1/file
dir2/

-----
Archive 'foo.tar.gz'
-----
dir1/
dir1/subdir1/
dir1/subdir1/file
dir1/file
dir2/

-----
Archive 'foo.tbz'
-----
dir1/
dir1/subdir1/
dir1/subdir1/file
dir1/file
dir2/

-----
Archive 'foo.zip'
-----
Archive contains:
  dir1/
  dir1/subdir1/
  dir1/subdir1/file
  dir1/file
  dir2/
Total 5 entries (0 bytes)

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

संग्रह की सामग्री दिखाने वाले emacs


6

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

vim archive.tar.gz

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

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


4

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

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


2

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


2

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

$ lesspipe example.tar.gz
drwxrwxr-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फाइलें जो मैंने डाउनलोड कीं, वे काम नहीं करेंगी क्योंकि वे वास्तव में फ़ाइल नाम के बावजूद gzip संपीड़न का उपयोग नहीं करती थीं।


0

यदि आप किसी संग्रह में किसी विशेष फ़ाइल की सामग्री को संग्रह के लिए निकाले या डिस्क पर लिखे बिना किसी भी तरह से देखना चाहते हैं, तो फ़ाइल के बजाय stdout लिखने के लिए -O (कैपिटल ओ) ध्वज का उपयोग करें।

tar -Oxvf gerald.tar.gz /path/to/sandra.txt | less

सुनिश्चित करें कि O f से पहले आता है या यह O को फ़ाइल नाम के रूप में पार्स करने का प्रयास करेगा।

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