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


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

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


197
2017-12-19 05:46


मूल


प्रयत्न man tar  ... - Reinier Post


जवाब:


Tar.gz फ़ाइल की सामग्री को निकालने के बिना टर्मिनल में निम्न आदेश चलाएं:

tar -tf filename.tar.gz

screenshot of listing compressed tarball files in the terminal


210
2017-12-19 05:47



संपीड़ित फ़ाइल के अंदर देखने के लिए इन सभी उदाहरणों को अन्य प्रकार के प्रारूपों पर भी काम करता है। ज़िप, रार, टैर इत्यादि की तरह? - Ciasto piekarz
tar -tvf xxx.tgz यह फाइलों के विस्तार गुण भी दिखाएगा। - Eric Wang
इसे पाइप करें tree एक पेड़ दृश्य देखने के लिए tar -tf filename.tar.gz | tree - blockloop
ज़िप / रार के उपयोग के लिए unzip -l / unrar -l - RoVo


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

vim filename.tar.gz

96
2017-12-19 05:49



यह कमाल का है। आप फाइलों की सामग्री भी देख सकते हैं! - Nico
या पूर्व संपादक का उपयोग करें: ex +%p foo.tar.gz। - kenorb
@Nico tgz के भीतर फ़ाइल की सामग्री देखने के लिए आप इसका उपयोग कैसे करते हैं? - 1252748
जब आप विम के साथ फ़ाइल खोलते हैं (vim file.tar.gz) यह कहता है "कर्सर के साथ एक फ़ाइल का चयन करें और ENTER दबाएं"। आप बस ऐसा करते हैं, कर्सर को एक फ़ाइल पर ले जाएं और ENTER दबाएं। - Nico
विशाल संग्रह के साथ आपको केवल धैर्य रखना होगा। फ़ोल्डर संरचना लोड करना बहुत लंबा हो सकता है। :-) - Hugo H


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, आप इसे स्क्रॉल कर सकते हैं, इसे खोज सकते हैं, आदि। हालांकि यह अन्य संपीड़न एल्गोरिदम (मेरे अनुभव में) के साथ बुरी तरह विफल रहता है।


36
2017-12-19 14:00



मेरे लिए काम नहीं किया एक बाइनरी फ़ाइल के रूप में प्रदर्शित किया गया। - JeromeJ
आप सुनिश्चित हैं कि आपके पास नहीं है alias के लिए विशेष विकल्प के साथ less कि तुम यहाँ नहीं दिख रहे हो? मैंने बस यह देखने की कोशिश की, लेकिन यह काम नहीं किया। मेरे पास कोई उपनाम सेटअप नहीं है less। - code_dredd


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

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

zcat file.gz   

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

zgrep test file.gz   

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

zdiff file1.gz file2.gz

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


32
2018-03-30 15:53





tarकी -t ध्वज आपके लिए सामग्री सूचीबद्ध करेगा। इसे अपने अन्य झंडे में जोड़ें (इसलिए -tvfz के लिए tar.gz, -tvfj के लिए 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 अभिलेखागार। मुझे यकीन नहीं है कि यह कितने अन्य लोगों का समर्थन करता है।


8
2018-03-30 15:50



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


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

  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 showing an archive's contents


8
2018-03-30 16:45





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

vim archive.tar.gz

enter image description here

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


6
2018-03-30 15:43





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

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


4
2018-03-30 15:52





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


2
2018-01-22 13:44