Content-type: text/html
unzip -Z [-12smlvhMtTz] file[.zip] [fichier(s) ...] [-x xfichier(s) ...]
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 :
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 :
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 » :
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é :
L'ajout de l'option -T change la date et l'heure du fichier vers le format décimal :
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(1L) 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 :
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.)
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 :
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(1L), 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.
Pour obtenir une liste basique au format long (pas trop bavarde), avec l'en-tête et la ligne des totaux, utilisez -l :
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 :
(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) :
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 :
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 :
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é :
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 :
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) :
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.
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.)