Question Comment afficher le contenu du fichier tar.gz sans extraire de la ligne de commande?


Je veux voir le contenu (liste des fichiers et des dossiers) d'une archive, par exemple un tar.gz fichier sans extraire il.

Y a-t-il des méthodes pour le faire?


196
2017-12-19 05:46


origine


Essayer man tar  ... - Reinier Post


Réponses:


Exécutez la commande ci-dessous dans le terminal pour voir le contenu d'un fichier tar.gz sans l'extraire:

tar -tf filename.tar.gz

screenshot of listing compressed tarball files in the terminal


210
2017-12-19 05:47



fait tous ces exemples pour regarder les fichiers compressés sur d'autres types de format. comme zip, rar, goudron etc. - Ciasto piekarz
tar -tvf xxx.tgz Cela montrerait également les propriétés détaillées des fichiers. - Eric Wang
le canaliser à tree pour voir une vue arborescente tar -tf filename.tar.gz | tree - blockloop
Pour une utilisation zip / rar unzip -l / unrar -l - RoVo


Vous pouvez aussi utiliser vim

vim filename.tar.gz

95
2017-12-19 05:49



C'est génial. Vous pouvez également voir le contenu des fichiers! - Nico
Ou utilisez l'éditeur Ex: ex +%p foo.tar.gz. - kenorb
@Nico Comment utilisez-vous cela pour voir le contenu d'un fichier dans le tgz? - 1252748
Lorsque vous ouvrez de fichier avec vim (vim file.tar.gz) il est dit "Sélectionnez un fichier avec le curseur et appuyez sur ENTER". Vous faites juste cela, déplacez le curseur sur un fichier et appuyez sur ENTRÉE. - Nico
Avec des archives volumineuses, il suffit d'être patient. Il peut être très long de charger la structure des dossiers. :-) - Hugo H


less peut également ouvrir gz-compressé et non compressé tar les archives. Ça te donne une belle ls -l sortie de style aussi:

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

Et parce que c'est less, vous pouvez le parcourir, le rechercher, etc. Cependant, il échoue lamentablement avec d’autres algorithmes de compression (selon mon expérience).


36
2017-12-19 14:00



N'a pas fonctionné pour moi Affiché sous la forme d'un fichier binaire. - JeromeJ
Vous êtes sûr de ne pas avoir alias avec des options spéciales pour less que tu ne montre pas ici? J'ai juste essayé ça pour voir, mais ça n'a pas marché. Je n'ai aucune configuration d'alias pour less. - code_dredd


Vous pouvez utiliser la commande z: zcat, zless, zgrep.

Pour afficher un contenu de fichier, utilisez:

zcat file.gz   

Pour grep quelque chose utiliser:

zgrep test file.gz   

Pour vérifier la différence entre les fichiers, utilisez:

zdiff file1.gz file2.gz

Ce ne sont que quelques exemples, il y en a beaucoup plus.


32
2018-03-30 15:53





tar's -t Le drapeau affichera le contenu pour vous. Ajoutez cela à vos autres drapeaux (donc -tvfz pour un tar.gz, -tvfj pour un tar.bz2, etc) et vous pouvez naviguer sans extraire. De là, vous pouvez extraire des fichiers uniques assez facilement

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

Le gros problème avec tar est se souvenir de tous les autres drapeaux. Donc je compte généralement sur 7z (du p7zip-full paquet) pour faire tout mon archivage. Je ne prétends pas que c'est tout à fait meilleur, mais il supporte presque tout (sans avoir à spécifier le type de compression) et les arguments sont logiques.

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

C'est certainement moins capable, mais vous ne le faites pas avoir besoin la page de manuel pour l'utiliser.

Il y a aussi Midnight Commander (mc). Il s’agit là d’un outil polyvalent pour la gestion de fichiers quasi-graphique sur terminal et avec quelques tests de lumière, il vous permet de naviguer dans les deux .tar.gz et .7z les archives. Je ne suis pas sûr de combien d’autres il supporte.


8
2018-03-30 15:50



t-ar l'habitude d'être et le nom signifie en effet ruban archiveur, qui crie de façon séquentielle et est dans de nombreux cas un PIA. Surtout que l'inévitable double tar + gz C'est juste cruel. Passons maintenant à 7zip maintenant. - Frank Nocke


Eh bien, cela dépend du fichier. La plupart des programmes de (de) compression comportent un drapeau qui répertorie le contenu d'une archive.

  1. tar/tar.gz/tgz/tar.xz/tar.bz2/tbz des dossiers

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

    $ 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 des dossiers

    $ 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 des dossiers

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

C'est la plupart des formats d'archives les plus populaires. En gardant cela à l'esprit, vous pouvez écrire un petit script qui utilise la commande appropriée en fonction de l'extension du fichier que vous lui donnez:

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

Enregistrez ce script dans votre PATH et le rendre exécutable. Vous pouvez ensuite lister le contenu de n'importe quelle archive:

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

Et comme quelqu'un a mentionné ce petit éditeur, naturellement, emacs peut aussi le faire:

emacs showing an archive's contents


8
2018-03-30 16:45





Pourquoi ne pas utiliser vim parcourir vos archives et ouvrir des fichiers (au moins des fichiers de type texte):

vim archive.tar.gz

enter image description here

Appuyez sur les touches fléchées pour faire défiler et Entrer ouvrir un fichier.


6
2018-03-30 15:43