ZIPINFO(1) | Manuel de l'utilisateur Linux | ZIPINFO(1) |
NOM¶
zipinfo - Afficher des informations détaillées sur une archive ZIP
SYNOPSIS¶
zipinfo [-12smlvhMtTz] fichier[.zip] [fichier(s) ...] [-x xfichier(s) ...]
unzip -Z [-12smlvhMtTz] file[.zip] [fichier(s) ...] [-x xfichier(s) ...]
DESCRIPTION¶
zipinfo affiche des informations techniques sur une archive ZIP, fréquemment trouvée dans les systèmes MS-DOS. Ces informations incluent les permissions d'accès aux fichiers, le cryptage éventuel, le type de compression, la version et le système d'exploitation ou de fichiers du programme de compactage, et similaires. Le comportement par défaut (sans options) est de lister une ligne par fichier stocké dans l'archive, avec des lignes d'en-tête et de fin donnant des informations pour l'archive entière. Le format est un croisement de la commande Unix « ls -l » et de la sortie de « unzip -v ». Voir DESCRIPTION DÉTAILLÉE ci-dessous. Remarquez que zipinfo est le même programme qu'unzip (sous Unix, un lien vers celui-ci) ; sous certains systèmes, cependant, le support de zipinfo peut avoir été omis quand unzip a été compilé.
PARAMÈTRES¶
- fichier[.zip]
- Chemin de l'archive ou des archives ZIP. S'il y a un joker dans le nom de fichier, chaque fichier correspondant est traité dans l'ordre déterminé par le système d'exploitation (ou de fichiers). Seul le nom peut contenir un joker ; le chemin lui-même ne peut pas. Les expressions avec des jokers sont similaires à celles de egrep(1) pur UNIX et peuvent contenir :
- *
- équivaut à tout paquet de caractères (même de taille 0)
- ?
- équivaut à tout caractère unique
- [...]
- équivaut à un des caractères trouvés entre les traits verticaux ; les plages sont spécifiés par un caractère, un trait horizontal, et un caractère de fin ; si un « ! » ou un « ^ » suit le trait vertical de gauche, alors la plage est exclue. (c'est-à-dire que tous les caractères sauf ceux spécifiés sont recherchés.)
- (Assurez-vous d'encadrer par des guillemets tout caractère qui peut être interprété ou modifié par le système d'exploitation, particulièrement sous Unix et VMS.) Si aucune occurrence n'est trouvée, le nom est considéré littéral ; si ce cas aussi échoue, le suffixe .zip est ajouté. Remarquez que les archives auto-extractibles sont supportées, de même que n'importe quelle autre archive ZIP ; il faut seulement spécifier le suffixe .exe (le cas échéant) explicitement.
- [fichier(s)]
- Une liste optionnelle des membres de l'archive à traiter. Des expressions (jokers) peuvent être utilisés pour spécifier plusieurs membres ; voir ci-dessus. Encore une fois, assurez-vous de protéger les expressions qui peuvent être interprétées ou modifiées par le système d'exploitation.
- [-x xfile(s)]
- Une liste optionnelle des membres de l'archive à exclure du traitement.
OPTIONS¶
- -1
- liste seulement les noms des fichiers, un par ligne. Cette option exclut toutes les autres ; les en-têtes, fins de liste et commentaires des archives zip ne sont jamais affichés. Elle est prévue pour être utilisée dans les scripts Unix.
- -2
- liste seulement les noms des fichiers, un par ligne, mais permet les en-têtes (-h), fins de liste (-t) et commentaires des archives zip (-z). Cette option peut être utile si les noms de fichier sont particulièrement longs.
- -s
- liste les informations du fichier zip au format court de la commande Unix « ls -l ». Ceci est le comportement par défaut ; voir ci-dessous.
- -m
- liste les informations du fichier zip au format moyen de la commande Unix « ls -l ». Identique à la sortie de -s, à l'exception du facteur de compression, exprimé en pourcentage, qui est aussi listé.
- -l
- liste les informations du fichier zip au format long de la commande Unix « ls -l ». Comme pour -m, à l'exception de la taille compactée en octets qui est affichée à la place du facteur de compression.
- -v
- liste les informations du fichier zip au format le plus long, en plusieurs pages.
- -h
- affiche la ligne d'en-tête. Le nom de l'archive, sa taille réelle (en octets) et le nombre total de fichiers sont affichés.
- -M
- dirige toutes les sorties vers un filtre interne similaire à la commande more(1) sous Unix. À la fin d'un écran plein, zipinfo s'arrête avec un prompt « --More-- » ; l'écran suivant peut être visualisé en appuyant sur la touche Entrée (Retour Chariot) ou la barre espace. zipinfo peut être terminé en appuyant sur la touche « q » et, sur certains systèmes, la touche Entrée. Contrairement à la commande Unix more(1), il n'y a pas de capacités de recherche et d'édition. De plus, zipinfo ne remarque pas si de longues lignes sont coupées au bord de l'écran, ce qui imprimera des lignes supplémentaires et probablement fera défiler vers le haut le texte avant qu'il ne soit vu. Sur certains systèmes le nombre de lignes disponibles sur l'écran n'est pas détecté, auquel cas zipinfo considère que la hauteur est de 24 lignes.
- -t
- affiche les totaux pour les fichiers listés ou pour tous les fichiers. Le nombre de fichiers listés, leur taille compacté et décompacté, ainsi que le facteur global de compression sont affichés ; ou, si seule la ligne de totaux est affichée, les valeurs pour l'archive entière sont données. Remarquez que la taille totale compactée (les données) ne correspondra jamais à la taille réelle de l'archive, puisque cette dernière inclut les en-têtes de fichier zip en plus des données.
- -T
- affiche les dates et heures des fichiers dans un format décimal triable (aammjj.hhmmss). Le format de date par défaut est une version plus standard et lisible avec des noms abrégés pour les mois (voir les exemples ci-dessous).
- -z
- inclut le commentaire de l'archive (s'il existe) dans l'affichage.
DESCRIPTION DÉTAILLÉE¶
zipinfo a beaucoup de modes, et son comportement peut être assez complexe à maîtriser si on ne connaît pas la commande Unix ls(1) (et même en la connaissant). Le comportement par défaut liste les fichiers au format suivant :
-rw-rws--- 1.9 unx 2802 t- defX 11-Aug-91 13:48 perms.2660
Les trois derniers champs sont les dates et heures de modification du fichier, et son nom. La casse du nom du fichier est respectée ; du coup de fichiers provenant de PKZIP pour MS-DOS sont toujours en majuscules. Si le fichier a été compacté avec un nom de dossier, celui-ci est aussi affiché comme partie intégrante du nom.
Les second et troisième champ indiquent que le fichier a été compacté sous Unix avec la version 1.9 de zip. Comme il provient d'une machine Unix, le permissions des fichiers au début de la ligne sont affichées au format Unix. La taille du fichier décompacté (2802 dans cet exemple) est le quatrième champ.
Le cinquième champ consiste en deux caractères, chacun pouvant prendre plusieurs valeurs. Le premier caractère peut valoir « t » ou « b », et indique si zip croit que le fichier est de type texte ou binaire, respectivement ; mais si le fichier est crypté, zipinfo l'indique en mettant en majuscules ce caractère (« T » ou « B »). Le second caractère peut aussi prendre quatre valeurs, suivant qu'il y ait un en-tête local étendu et/ou un « champ extra » associé au fichier (explication complète dans le fichier APPNOTE.TXT de PKWare, mais basiquement analogue aux pragmas en C ANSI - ex., ils permettent de mettre d'une manière standard des informations non-standard dans l'archive). Si aucun n'existe, le caractère sera un tiret (« - »); s'il existe un en-tête local étendu mais pas de champ extra, « l »; si c'est l'inverse, « x » ; et si les deux existent, « X ». donc le fichier dans cet exemple est (probablement) un texte, non crypté, et n'a ni un en-tête local étendu ni un champ extra qui lui soient associés. L'exemple ci-dessous, par contre, est un fichier binaire crypté avec un champ extra :
RWD,R,R 0.9 vms 168 Bx shrk 9-Aug-91 19:15 perms.0644
Les champs extra sont utilisés dans des buts divers (voir l'option -v ci-dessous) incluant le stockage des attributs de fichier VMS, ce qui est probablement le cas ici. Remarquez que les attributs de fichier sont listés au format VMS. D'autres possibilités spécifiques au système d'exploitation hôte (qui sont ici plutôt des systèmes de fichiers) incluent OS/2 ou NT avec High Performance File System (HPFS), MS-DOS, OS/2 ou NT avec File Allocation Table (FAT), et Macintosh. Ceux-ci sont marqués comme suit :
-rw-a-- 1.0 hpf 5358 Tl i4:3 4-Dec-91 11:33 longfilename.hpfs
-r--ahs 1.1 fat 4096 b- i4:2 14-Jul-91 12:58 EA DATA. SF
--w------- 1.0 mac 17357 bx i8:2 4-May-92 04:02 unzip.macr
Les attributs de fichier sont dans les deux premiers cas affichés dans un format proche d'Unix, où les sept sous-champs indiquent si le fichier : (1) est un dossier, (2) est lisible (toujours vrai), (3) peut être écrit, (4) est exécutable (deviné à partir de l'extension - les fichiers .exe, .com, .bat, .cmd et .btm sont présumés l'être), (5) si le bit d'archivage est activé, (6) s'il est caché, et (7) si c'est un fichier système. L'interprétation des attributs de fichier Macintosh n'est pas fiable car certains archiveurs pour Macintosh ne stockent pas les attributs dans l'archive.
Finalement, le sixième champ indique la méthode de compactage et éventuellement la sous-méthode utilisée. Il y a six méthodes connues actuellement : stockage (pas de compactage), réduction, ratatinage, condensation, marquage (qui n'est jamais sortie), et déflation. De plus, il y a quatre niveaux de réduction (de 1 à 4) ; quatre types de condensation (dictionnaire de 4K ou 8K et 2 ou 3 arbres de Shannon-Fano) ; et quatre niveaux de déflation (super-rapide, rapide, normal, compactage maximal). zipinfo représente ces méthodes et leurs sous-méthodes comme suit : stor; re:1, re:2, etc.; shrk; i4:2, i8:3, etc.; tokn; et defS, defF, defN, et defX.
Les affichages moyen et long sont pratiquement identiques au court si ce n'est qu'il ajoute des information sur la compression du fichier. Le format moyen affiche le facteur de compactage comme un pourcentage indiquant la quantité d'espace « enlevée » :
-rw-rws--- 1.5 unx 2802 t- 81% defX 11-Aug-91 13:48 perms.2660
Dans cet exemple, le fichier a été compacté dans facteur supérieur à cinq ; Les données compactées ne prennent que 19% de la taille d'origine. Le format long donne plutôt la taille en octets du fichier compressé :
-rw-rws--- 1.5 unx 2802 t- 538 defX 11-Aug-91 13:48 perms.2660
L'ajout de l'option -T change la date et l'heure du fichier vers le format décimal :
-rw-rws--- 1.5 unx 2802 t- 538 defX 910811.134804 perms.2660
remarquez que de par les limitations du format MS-DOS pour le stockage des heures de fichier, le second champ est toujours arrondi à la seconde entière la plus proche. Pour les fichiers Unix ceci devrait changer dans les prochaines versions majeures de zip(1) et unzip.
En plus des informations individuelles des fichiers, un listage d'archive zip par défaut inclut aussi un en-tête et une fin de liste :
Archive: OS2.zip 5453 bytes 5 files
,,rw, 1.0 hpf 730 b- i4:3 26-Jun-92 23:40 Contents
,,rw, 1.0 hpf 3710 b- i4:3 26-Jun-92 23:33 makefile.os2
,,rw, 1.0 hpf 8753 b- i8:3 26-Jun-92 15:29 os2unzip.c
,,rw, 1.0 hpf 98 b- stor 21-Aug-91 15:34 unzip.def
,,rw, 1.0 hpf 95 b- stor 21-Aug-91 17:51 zipinfo.def
5 files, 13386 bytes décompactés, 4951 bytes compactés: 63.0%
La ligne d'en-tête donne le nom de l'archive, sa taille totale, et le nombre total de fichiers ; la fin donne le nombre de fichiers listés, leur taille totale décompactés, et leur taille totale compactés (sans compter l'en-tête du format zip). Si, cependant, un ou plusieurs fichiers sont fournis, l'en-tête et la fin ne sont pas affichés. Ce comportement est aussi similaire à la commande Unix « ls -l » ; il peut être modifié en spécifiant les options -h et -t. Dans ce cas, le format d'affichage doit aussi être spécifié, puisquqe -h ou -t (ou les deux) en l'absence d'autres options indiquent que SEUL l'en-tête ou la fin (ou les deux) doivent être affichés. Voir la section EXEMPLES ci-dessous pour une traduction semi-intelligible de ce non-sens.
L'affiche le plus détaillé est à peu près clair. Il liste aussi les commentaires de fichier et d'archive, le cas échéant, et le type et le nombre des octets de tout champ extra. Le types de champ extra actuellement connus sont l'information d'authentification de PKWARE (« AV ») ; les attributs étendus d'OS/2 ; les informations du système de fichiers VMS, dans les deux versions de PKWARE et de Info-ZIP ; les branchements de ressource des Macintosh ; les informations du SparkFS Acorn/Archimedes ; et ainsi de suite. (Remarquez que dans le cas des attributs étendus d'OS/2 - peut-être l'utilisation la plus courante des champs extra - la taille des EA stockés affichée par zipinfo peut ne pas correspondre à celle donné par la commande d'OS/2 dir : OS/2 indique toujours le nombre d'octets requis au format 16-bit, alors que zipinfo travaille toujours en 32-bit.)
OPTIONS D'ENVIRONNEMENT¶
La modification du comportement par défaut de zipinfo à travers une variable d'environnement peut être un peu compliqué à expliquer, car zipinfo tente de gérer ses divers comportements par défaut d'un manière intuitive, bien que de style Unix. (Essayez de ne pas rire.) Cependant, il y aune logique sous-jacente. En bref, il y a trois « niveaux de priorité » pour les options : les options par défaut ; les options d'environnement, qui peuvent écraser ou s'ajouter aux options par défaut ; et les options explicites données par l'utilisateur, qui s'ajoute ou écrasent les deux précédentes.
L'affichage par défaut, comme mentionné ci-dessus, correspond grosso modo à la commande « zipinfo -hst » (sauf quand des fichiers sont spécifiés). Un utilisateur qui préfère l'affichage long (-l) peut utiliser la variable d'environnement de zipinfo pour changer ceci :
ZIPINFO=-l; export ZIPINFO Unix Bourne shell
setenv ZIPINFO -l Unix C shell
set ZIPINFO=-l OS/2 or MS-DOS
define ZIPINFO_OPTS "-l" VMS (guillemets pour les minuscules)
Si, de plus, un utilisateur n'aime pas la ligne de fin, le concept d'« options négatives » de zipinfo peut être utilisé pour écraser l'inclusion de la ligne par défaut. Ceci est accompli en précédant l'option non désirée d'un ou plusieurs moins : ex. « -l-t » ou « --tl », dans ce cas. Le premier tiret est le caractère normal de basculement, mais celui avant le « t » est un signe moins. La double utilisation des tirets peut sembler étrange, elle n'en est pas moins raisonablement intuitive : il suffit d'ignorer le premier tiret et de commencer la lecture. C'est aussi le même comportement que la commande Unix nice(1).
Comme suggéré dans les exemples ci-dessus, les noms de variable par défaut sont ZIPINFO_OPTS pour VMS (où le symbole utilisé pour installer zipinfo comme commande extérieure aurait été confondu avec la variable d'environnement), et ZIPINFO pour tous les autres systèmes d'exploitation. Pour être compatible avec zip(1), ZIPINFOOPT est aussi accepté (non demandé). Si à la fois ZIPINFO et ZIPINFOOPT sont définis, cependant, ZIPINFO est prioritaire. L'option de diagnostic de unzip (-v sans nom de fichier zip) peut être utilisée pour visualiser les quatre valeurs possibles des variables d'environnement de unzip et zipinfo.
EXEMPLES¶
Pour obtenir une liste basique, au format court, de tous les fichiers d'une archive ZIP storage.zip, avec à la fois l'en-tête et la ligne des totaux, utilisez seulement le nom de l'archive comme paramètre pour zipinfo :
zipinfo storage
Pour obtenir une liste basique au format long (pas trop bavarde), avec l'en-tête et la ligne des totaux, utilisez -l :
zipinfo -l storage
Pour lister tous les éléments de l'archive sans en-tête ni fin, soit vous niez les options -h et -t, soit vous spécifiez le contenu :
zipinfo --h-t storage
zipinfo storage \*
(où l'antislash n'est requis que si l'environnement développe le joker « * », comme sous Unix - des guillemets auraient aussi fonctionné). Pour enlever la ligne de fin par défaut, utilisez la variable d'environnement (ici pour un C shell) :
setenv ZIPINFO --t
zipinfo storage
Pour obtenir une liste complète, au format court du premier exemple, si la variable d'environnement est affectée comme dans l'exemple précédent, il est nécessaire de spécifier l'option -s puisque l'option -t implique que seule la fin est affichée :
setenv ZIPINFO --t
zipinfo -t storage [seule la ligne de fin]
zipinfo -st storage [toute la liste]
L'option -s, comme -m et -l, inclut l'en-tête et la fin par défaut, sauf spécification contraire. comme la variable d'environnement spécifie pas de fin et a une précédence supérieure que le comportement par défaut de -s, une option explicite -t était nécessaire pour obtenir une liste complète. Rien n'a été indiqué pour l'en-tête, cependant, donc l'option -s est suffisante. Remarquez que les deux options -h et -t, qu'elles soient utilisées seules ou ensemble, écrasent tout listage par défaut des membres de l'archive ; seul l'en-tête et/ou la fin sont affichés. Ce comportement est utile quand zipinfo est utilisé avec un nom d'archive comportant des jokers ; le contenu de toutes les archives est alors résumé avec une seule commande.
Pour lister l'information sur un seul fichier de l'archive, au format moyen, spécifiez le nom du fichier :
zipinfo -m storage unshrink.c
La spécification de tout fichier membre, comme dans cet exemple, va écraser les lignes par défaut d'en-tête et de fin ; seule une ligne d'information sur le fichier concerné sera affichée. Ceci est intuitivement ce que l'on attend quand on spécifie un fichier précis. Si la spécification concerne plusieurs fichiers, il est souvent utile de connaître la taille totale compacté et non compacté ; dans de tels cas, -t peut être spécifié :
zipinfo -mt storage "*.[ch]" Mak\*
Pour obtenir un maximum d'informations sur l'archive ZIP, utilisez le mode bavard. Il est usuellement sage de tuber la sortie vers un filtre tel que la commande Unix more(1) si le système d'exploitation le permet :
zipinfo -v storage | more
Finalement, pour voir les fichiers modifiés le plus récemment dans l'archive, utilisez l'option -T en conjonction avec un utilitaire de triage externe comme la commande d'Unix sort(1) (et aussi tail(1) dans cet exemple) :
zipinfo -T storage | sort -n +6 | tail -15
L'option -n de sort(1) demande un tri numérique plutôt que par ordre ASCII, et le +6 demande de trier le sixième champ après le premier (cad. le septième champ). Ceci assume le format court par défaut ; si -m ou -l sont utilisés, la bonne option pour sort(1) serait +7. La commande tail(1) ne conserve que le 15 dernières lignes de la liste. De futures version de zipinfo incorporeront peut-être un tri sur les dates/heures et les noms en interne.
CONSEILS¶
L'auteur trouve pratique de définir un alias ii pour zipinfo sur les systèmes qui permettent les alias (ou, sur les autres, copier/renommer l'exécutable, créer un lien ou créer un fichier de commandes avec le nom ii). L'utilisation de ii est un parallèle avec l'alias courant ll pour les listes longues sous Unix, et la similarité des sorties des deux commandes est intentionnelle.
BOGUES¶
Comme pour unzip, la commande de zipinfo-M (« more ») est trop simpliste dans sa gestion des sorties écran ; comme mentionné ci-dessus, elle ne détecte pas le sauts de ligne occasionnés par les longues lignes et peut par conséquent effacer certaines lignes avant qu'elles aient pu être lues. zipinfo devrait détecter et traiter chaque cas de ligne trop longue comme une ligne supplémentaire affichée. Ceci requiert la connaissance de la largeur et de la hauteur de l'affichage. De plus, zipinfo devrait détecter la vraie géométrie de l'affichage sur tous les systèmes.
Le format d'affichage de zipinfo est plus compliqué que nécessaire, et devrait être simplifié. (Ce qui ne veut pas dire qu'il le sera.)
VOIR AUSSI¶
ls(1), funzip(1), unzip(1), unzipsfx(1), zip(1), zipcloak(1), zipnote(1), zipsplit(1)
URL¶
La page d'Info-ZIP est actuellement sur ftp://ftp.info-zip.org/pub/infozip/ .
AUTEURS¶
Greg « Cave Newt » Roelofs. ZipInfo contient du code de recherche de motif de Mark Adler et des corrections/améliorations par beaucoup d'autres. Veuillez vous référer au fichier CONTRIBS dans la distribution du source Unzip pour une version relativement complète. Cette page de manuel a été traduite en 2001 par José JORGE <jose.jorge@oreka.com>.
16 Avril 2000 | Info-ZIP (v2.31) |