Lire le contenu d'un fichier compressé sans extraction?

153

Comment puis-je lire le contenu d'un fichier particulier dans une archive sans extraire le fichier .zip qui le contient? J'utilise la ligne de commande Linux.

Une question précédente concerne l'affichage du répertoire de l'archive. Mais pour moi, il ne suffit pas de voir seulement une liste des fichiers dans les archives, il faut que je voie le contenu d'un fichier dans les archives.

Shrikanth
la source
@ fix1234 (et d'autres): La question liée demande: «Comment puis-je afficher les fichiers dans une archive ZIP?» AFAIC, c'est la même question que «Comment voir le contenu d'un fichier…?» Il est regrettable que beaucoup de Les personnes qui ont répondu à cette question l'ont interprétée comme suit: «Comment puis-je consulter le répertoire des archives?». Cependant, la réponse de Gilles (naturellement) et la réponse de Rajasekhar Tolety (apparemment) à cette question apportent des réponses à cette question.
Scott
1
@ Scott, peut-être devrions-nous trouver un moyen de fusionner les deux questions pour que les deux sujets soient traités en un, ou recentrer l'autre pour qu'il soit clairement centré sur l'annuaire, puis déplacer les réponses entre les deux endroits pour faire correspondre les questions. À l'heure actuelle, les deux sont un méli-mélo.
fixer1234
@ fix1234: Je suis d'accord, jusqu'à un certain point. Les modérateurs nous disent toujours que les doublons sont une bonne chose, car ils offrent une plus grande surface d'exposition aux moteurs de recherche (c.-à-d. Plus de chances qu'une recherche trouve l'une des questions). Mais il y a le problème: si un utilisateur trouve l' une des questions et si le lien n'est pas évident (et personne ne regarde les listes de questions «liées» et «liées» - du moins pas des suiveurs au hasard des résultats de recherche), l'utilisateur n'a trouvé qu'une fraction des réponses. DavidPostill a voté pour la réouverture de cette question. Peut-être devriez-vous lui parler.
Scott
@Scott - Etant donné que le demandeur a marqué la réponse “Comment puis-je voir le répertoire des archives?” Comme acceptée, je dois penser que c'était probablement le but de la question. Malheureusement, il est formulé de manière ambiguë de telle manière que cela pourrait signifier l'une ou l'autre interprétation.
M. Justin

Réponses:

198

unzip -l archive.zip répertorie le contenu d'une archive ZIP pour vous assurer que votre fichier est à l'intérieur.

Utilisez l' -coption pour écrire le contenu des fichiers nommés sur stdout (écran) sans avoir à décompresser l'archive complète.

unzip -c archive.zip file1.txt file2.txt | less

Pour ce type d’opération, je lessdirige toujours la sortie vers , sinon le fichier entier volera à l’écran avant que vous ne puissiez le lire.

BTW zcat est idéal pour afficher le contenu des fichiers .gz sans avoir à les décompresser au préalable.

danielcraigie
la source
8
Au moins dans Ubuntu, less est en quelque sorte configuré pour le faire par défaut - less archive.zipaffiche donc la liste des fichiers.
Aviv
1
bzcat pour afficher le contenu des fichiers bz2 sans avoir à les décompresser au préalable ...
Justin E
3
unzip -c affiche également le nom du fichier et quelques messages supplémentaires (en les envoyant à stdout). L'utilisation de -p à la place n'envoie que le fichier au format binaire. C'est plus utile pour la tuyauterie
Juan Calero
Avec votre $LESSOPENjeu sur lesspipe, vous pouvez simplement less foo.gzafficher le contenu décompressé. (@aviv: c'est la même chose qui permet less foo.zipde se glisser unzip -l foo.zipdans lui-même).
Peter Cordes
unzip -c archive.zip '*' | lessfait ce que je cherchais: cat le contenu de l'archive zip.
Peter Cordes
4

zipinfoC’est un autre outil que vous pouvez utiliser. C’est utile si vous êtes sur un système verrouillé où il unzipn’est pas autorisé.

Nickolai
la source
4

Si vous êtes à la recherche pour afficher des images dans les archives, vous pouvez utiliser Comix ou plus récent MComix pour voir les images à l' intérieur .zip, .rar, .cbret des .cbzfichiers sans extraction.

Kokizzu
la source
2

Commencez Emacsen ligne de commande et ouvrez vos fichiers zip avec le Zip-Archivemode. Sans aucun réglage Emacs / elisp (les nouveaux utilisateurs craignent généralement), vous verrez les détails du fichier comme à partir de zipinfo: modes, longueur, date, heure

Ensuite, vous pourrez ouvrir des fichiers dans des tampons et même enregistrer vos modifications dans les archives, avec les raccourcis standard:

  • Entrez un nom de fichier dans la liste pour l'ouvrir
  • Editer et sauvegarder avec Ctrl-x Ctrl-s
  • Supprimer le tampon Ctrl-kpour revenir au tampon d'archivage et continuer

Lorsque vous êtes dans la Zip-Archivemémoire tampon, utilisez-le Ctrl-h mpour obtenir tous les raccourcis disponibles dans la vue Aide.

J'espère que cela vous mènera à découvrir les fonctionnalités impressionnantes d'Emacs

Yves Martin
la source
1

Vous pouvez utiliser vimpour lister le contenu de l' archive zip/ rar/ tar:

vim archive.zip

BTW: voici la même question.

patryk.beza
la source
0

J'ai trouvé less archive.zipêtre le moyen le plus simple de le faire.

RobertMyles
la source
2
less archive.zip n'affiche pas le contenu d'un fichier compressé, mais seulement le contenu d'une archive compressée .
karel
Merci pour la clarification, @karel
RobertMyles
Je pense que ce que vous essayez vraiment de faire serait la même chose que la réponse de danielcraigie.
Karel
-1

Si le fichier est inclus dans l'archive zip, vous devez extraire uniquement ce fichier d'archive (peut dépendre du type d'archive, certaines archives ne peuvent pas extraire les fichiers séparément).

blogueur
la source
Oui, mais vous pouvez extraire sur stdout et insérer directement dans un pager.
Peter Cordes
Ce n'est pas une réponse technique, mais plutôt un politicien ou un avocat. S'il vous plaît être plus précis! (montrer la commande par exemple)
Hola Soy Edu Feliz Navidad