Vraag Hoe kan ik de inhoud van het tar.gz-bestand bekijken zonder te extraheren vanaf de opdrachtregel?


Ik wil de inhoud (lijst van bestanden en mappen) van een archief zien, bijvoorbeeld een tar.gz het dossier zonder extraheren het.

Zijn er methoden om dat te doen?


196
2017-12-19 05:46


oorsprong


Proberen man tar  ... - Reinier Post


antwoorden:


Voer de onderstaande opdracht uit in de terminal om de inhoud van een tar.gz-bestand te bekijken zonder deze uit te pakken:

tar -tf filename.tar.gz

screenshot of listing compressed tarball files in the terminal


210
2017-12-19 05:47



doet al deze voorbeelden om in gecomprimeerde bestanden te kijken ook op andere typen formaat. zoals zip, rar, tar etc.? - Ciasto piekarz
tar -tvf xxx.tgz dit zou ook de detaileigenschappen van bestanden laten zien. - Eric Wang
pijp het naar tree om een ​​boomstructuur te bekijken tar -tf filename.tar.gz | tree - blockloop
Voor zip / rar gebruik unzip -l / unrar -l - RoVo


Je kunt ook vim gebruiken

vim filename.tar.gz

95
2017-12-19 05:49



Dit is geweldig. U kunt ook de inhoud van de bestanden bekijken! - Nico
Of gebruik de Ex-editor: ex +%p foo.tar.gz. - kenorb
@Nico Hoe gebruik je dit om de inhoud van een bestand binnen de tgz te zien? - 1252748
Wanneer je de file opent met vim (vim file.tar.gz) staat er "Selecteer een bestand met cursor en druk op ENTER". Doe dat alleen, verplaats de cursor over een bestand en druk op ENTER. - Nico
Met een enorm archief hoef je alleen maar geduldig te zijn. Het kan erg lang duren om de mappenstructuur te laden. :-) - Hugo H


less kan ook openen gz-gecomprimeerd en ongecomprimeerd tar archieven. Het geeft je een schoonheid ls -l stijluitvoer ook:

$ 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
...

En omdat het zo is less, je kunt er doorheen bladeren, zoeken, enz. Maar het faalt jammerlijk met andere compressie-algoritmen (in mijn ervaring).


36
2017-12-19 14:00



Werkte niet voor mij. Weergegeven als een binair bestand. - JeromeJ
Je weet zeker dat je geen hebt alias met speciale opties voor less dat je hier niet wordt weergegeven? Ik probeerde dat gewoon om te zien, maar het werkte niet. Ik heb geen configuratie voor aliassen less. - code_dredd


U zou de opdracht z kunnen gebruiken: zcat, zless, zgrep.

Gebruik de volgende bestanden om bestanden te bekijken:

zcat file.gz   

Om iets te grepen, gebruik je:

zgrep test file.gz   

Gebruik het volgende om het verschil tussen bestanden te controleren:

zdiff file1.gz file2.gz

Dit zijn slechts een paar voorbeelden, er zijn er nog veel meer.


32
2018-03-30 15:53





tar's -t vlag zal de inhoud voor u weergeven. Voeg dat toe aan je andere vlaggen (dus -tvfz voor een tar.gz, -tvfj voor een tar.bz2, enz.) en je kunt bladeren zonder te extraheren. Vanaf daar kun je vrij eenvoudig losse bestanden uitpakken

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

Het grote probleem met tar is Onthoud alle andere vlaggen. Dus ik vertrouw meestal 7z (van de p7zip-full pakket) om al mijn archivering te doen. Ik beweer niet dat het helemaal beter is, maar het ondersteunt bijna alles (zonder compressietype te hoeven opgeven) en de argumenten zijn logisch.

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

Het is zeker minder capabel, maar dat doe je niet nodig hebben de man-pagina om het te gebruiken.

Er is ook Midnight Commander (mc). Dit is een all-round badass voor quasi-grafisch terminalgebaseerd bestandsbeheer en met wat lichte tests kunt u gewoon door beide typen bladeren .tar.gz en .7z archieven. Ik weet niet zeker hoeveel anderen het ondersteunt.


8
2018-03-30 15:50



t-ar was vroeger en de naam staat inderdaad voor band archiver, die opeenvolgend schreeuwt en in veel gevallen een PIA is. Vooral als de onvermijdelijke dubbele tar + gz dit is gewoon wreed. Ook nu verhuisd naar 7zip. - Frank Nocke


Wel, dat hangt van het bestand af. De meeste (de) compressieprogramma's hebben een vlag die de inhoud van een archief weergeeft.

  1. tar/tar.gz/tgz/tar.xz/tar.bz2/tbz bestanden

    $ tar tf foo.tgz 
    dir1/
    dir1/subdir1/
    dir1/subdir1/file
    dir1/subdir2/
    dir1/subdir2/file
    dir2/
    
  2. zip bestanden

    $ 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 bestanden

    $ 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 bestanden

     $ 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%
    

Dat zijn de meest populaire archiefformaten. Met dit alles in gedachten, zou je een klein script kunnen schrijven dat de juiste opdracht gebruikt, afhankelijk van de extensie van het bestand dat je eraan geeft:

#!/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

Bewaar dat script in uw PATH en maak het uitvoerbaar. U kunt dan de inhoud van elk archief weergeven:

$ 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)

En aangezien iemand die kleinere editor noemde, kunnen emacs natuurlijk ook dit doen:

emacs showing an archive's contents


8
2018-03-30 16:45





Waarom niet gebruiken vim om door uw archief te bladeren en bestanden te openen (tenminste tekstachtige bestanden):

vim archive.tar.gz

enter image description here

Druk op de pijltoetsen om te bladeren en invoeren om een ​​bestand te openen.


6
2018-03-30 15:43





Midnight Commander (mc) heeft ook een goede gecomprimeerde bestandsviewer, hoewel ik dit een beetje valsspelen vind sinds mc is een bestandsbeheerder, zij het een op tekst gebaseerde.

En als u alleen wilt weten wat er in gecomprimeerde archieven zit, kunt u het "view" -commando voor elke compressor leren. tar tzvf zal je de inhoud van een tar-bestand laten zien, unzip -l zal het doen voor een zipbestand, enzovoort.


4
2018-03-30 15:52





Gebruik makend van view filename.tar.gz  zal ook werken. veel op dezelfde manier als VIM doet, maar zonder schrijfrechten.


2
2018-01-22 13:44