1
2ZIPINFO(1L)                                           ZIPINFO(1L)
3
4NAME
5       zipinfo - list detailed information about a ZIP archive
6
7SYNOPSIS
8       zipinfo     [-12smlvhMtTz]     file[.zip]    [file(s) ...]
9       [-x xfile(s) ...]
10
11       unzip   -Z   [-12smlvhMtTz]    file[.zip]    [file(s) ...]
12       [-x xfile(s) ...]
13
14DESCRIPTION
15       zipinfo  lists  technical information about files in a ZIP
16       archive, most commonly  found  on  MS-DOS  systems.   Such
17       information  includes  file access permissions, encryption
18       status, type of compression, version and operating  system
19       or  file system of compressing program, and the like.  The
20       default behavior (with no options) is to list  single-line
21       entries  for  each  file  in  the archive, with header and
22       trailer lines providing summary information for the entire
23       archive.  The format is a cross between Unix ``ls -l'' and
24       ``unzip -v''  output.   See  DETAILED  DESCRIPTION  below.
25       Note  that  zipinfo  is  the  same program as unzip (under
26       Unix, a link to it); on  some  systems,  however,  zipinfo
27       support may have been omitted when unzip was compiled.
28
29ARGUMENTS
30       file[.zip]
31              Path of the ZIP archive(s).  If the file specifica-
32              tion is a wildcard, each matching file is processed
33              in  an order determined by the operating system (or
34              file system).  Only the filename can be a wildcard;
35              the  path  itself cannot.  Wildcard expressions are
36              similar to Unix egrep(1) (regular) expressions  and
37              may contain:
38
39              *      matches a sequence of 0 or more characters
40
41              ?      matches exactly 1 character
42
43              [...]  matches  any  single  character found inside
44                     the brackets;  ranges  are  specified  by  a
45                     beginning character, a hyphen, and an ending
46                     character.  If an  exclamation  point  or  a
47                     caret (`!' or `^') follows the left bracket,
48                     then the  range  of  characters  within  the
49                     brackets  is complemented (that is, anything
50                     except the characters inside the brackets is
51                     considered a match).
52
53              (Be  sure  to quote any character that might other-
54              wise be interpreted or modified  by  the  operating
55              system,  particularly  under  Unix and VMS.)  If no
56              matches are found, the specification is assumed  to
57              be  a literal filename; and if that also fails, the
58
59Info-ZIP             17 February 2002 (v2.4)                    1
60
61ZIPINFO(1L)                                           ZIPINFO(1L)
62
63              suffix .zip is appended.  Note that self-extracting
64              ZIP files are supported; just specify the .exe suf-
65              fix (if any) explicitly.
66
67       [file(s)]
68              An optional list of  archive  members  to  be  pro-
69              cessed.   Regular  expressions  (wildcards)  may be
70              used to match multiple members; see above.   Again,
71              be  sure  to quote expressions that would otherwise
72              be expanded or modified by the operating system.
73
74       [-x xfile(s)]
75              An optional list of archive members to be  excluded
76              from processing.
77
78OPTIONS
79       -1     list  filenames  only,  one  per line.  This option
80              excludes all others; headers, trailers and  zipfile
81              comments are never printed.  It is intended for use
82              in Unix shell scripts.
83
84       -2     list filenames only, one per line, but allow  head-
85              ers  (-h), trailers (-t) and zipfile comments (-z),
86              as well.  This option may be useful in cases  where
87              the stored filenames are particularly long.
88
89       -s     list  zipfile  info in short Unix ``ls -l'' format.
90              This is the default behavior; see below.
91
92       -m     list zipfile info in medium Unix ``ls -l''  format.
93              Identical  to  the  -s output, except that the com-
94              pression factor, expressed as a percentage, is also
95              listed.
96
97       -l     list  zipfile  info  in long Unix ``ls -l'' format.
98              As with -m except  that  the  compressed  size  (in
99              bytes) is printed instead of the compression ratio.
100
101       -v     list zipfile  information  in  verbose,  multi-page
102              format.
103
104       -h     list  header  line.   The archive name, actual size
105              (in bytes) and total number of files is printed.
106
107       -M     pipe all output through an internal  pager  similar
108              to  the  Unix  more(1)  command.   At  the end of a
109              screenful  of  output,  zipinfo   pauses   with   a
110              ``--More--''  prompt;  the  next  screenful  may be
111              viewed by pressing the Enter (Return)  key  or  the
112              space  bar.   zipinfo can be terminated by pressing
113              the  ``q''  key   and,   on   some   systems,   the
114              Enter/Return key.  Unlike Unix more(1), there is no
115              forward-searching  or  editing  capability.   Also,
116              zipinfo  doesn't  notice  if long lines wrap at the
117
118Info-ZIP             17 February 2002 (v2.4)                    2
119
120ZIPINFO(1L)                                           ZIPINFO(1L)
121
122              edge of the screen, effectively  resulting  in  the
123              printing  of  two  or more lines and the likelihood
124              that some text will  scroll  off  the  top  of  the
125              screen  before  being  viewed.  On some systems the
126              number of available lines  on  the  screen  is  not
127              detected,  in which case zipinfo assumes the height
128              is 24 lines.
129
130       -t     list totals for files listed or for all files.  The
131              number of files listed, their uncompressed and com-
132              pressed total sizes, and their overall  compression
133              factor  is  printed; or, if only the totals line is
134              being printed, the values for  the  entire  archive
135              are  given.   Note that the total compressed (data)
136              size will never  match  the  actual  zipfile  size,
137              since  the latter includes all of the internal zip-
138              file headers in addition to the compressed data.
139
140       -T     print the file dates and times in a sortable  deci-
141              mal  format (yymmdd.hhmmss).  The default date for-
142              mat is a more standard, human-readable version with
143              abbreviated month names (see examples below).
144
145       -z     include  the  archive comment (if any) in the list-
146              ing.
147
148DETAILED DESCRIPTION
149       zipinfo has a number of modes, and  its  behavior  can  be
150       rather difficult to fathom if one isn't familiar with Unix
151       ls(1) (or even if one is).  The  default  behavior  is  to
152       list files in the following format:
153
154  -rw-rws---  1.9 unx    2802 t- defX 11-Aug-91 13:48 perms.2660
155
156       The  last  three fields are the modification date and time
157       of the file, and its name.  The case of  the  filename  is
158       respected;  thus  files  that  come  from MS-DOS PKZIP are
159       always capitalized.  If the file was zipped with a  stored
160       directory  name,  that  is  also  displayed as part of the
161       filename.
162
163       The second and third fields indicate  that  the  file  was
164       zipped under Unix with version 1.9 of zip.  Since it comes
165       from Unix, the file permissions at the  beginning  of  the
166       line  are  printed in Unix format.  The uncompressed file-
167       size (2802 in this example) is the fourth field.
168
169       The fifth field consists  of  two  characters,  either  of
170       which may take on several values.  The first character may
171       be either `t' or `b', indicating  that  zip  believes  the
172       file  to  be text or binary, respectively; but if the file
173       is encrypted, zipinfo notes this fact by capitalizing  the
174       character  (`T'  or  `B').   The second character may also
175       take on four values, depending  on  whether  there  is  an
176
177Info-ZIP             17 February 2002 (v2.4)                    3
178
179ZIPINFO(1L)                                           ZIPINFO(1L)
180
181       extended local header and/or an ``extra field'' associated
182       with the file (fully explained  in  PKWare's  APPNOTE.TXT,
183       but  basically  analogous to pragmas in ANSI C--i.e., they
184       provide a standard way to include non-standard information
185       in the archive).  If neither exists, the character will be
186       a hyphen (`-'); if there is an extended local  header  but
187       no  extra  field,  `l';  if  the reverse, `x'; and if both
188       exist, `X'.  Thus the file in this example is (probably) a
189       text  file,  is  not  encrypted,  and has neither an extra
190       field nor an extended local  header  associated  with  it.
191       The  example  below,  on  the  other hand, is an encrypted
192       binary file with an extra field:
193
194  RWD,R,R     0.9 vms     168 Bx shrk  9-Aug-91 19:15 perms.0644
195
196       Extra fields are used for various purposes (see discussion
197       of  the -v option below) including the storage of VMS file
198       attributes, which is presumably the case here.  Note  that
199       the  file attributes are listed in VMS format.  Some other
200       possibilities for the  host  operating  system  (which  is
201       actually  a  misnomer--host  file  system is more correct)
202       include OS/2 or  NT  with  High  Performance  File  System
203       (HPFS),  MS-DOS,  OS/2  or  NT  with File Allocation Table
204       (FAT) file system, and Macintosh.  These  are  denoted  as
205       follows:
206
207  -rw-a--     1.0 hpf    5358 Tl i4:3  4-Dec-91 11:33 longfilename.hpfs
208  -r--ahs     1.1 fat    4096 b- i4:2 14-Jul-91 12:58 EA DATA. SF
209  --w-------  1.0 mac   17357 bx i8:2  4-May-92 04:02 unzip.macr
210
211       File  attributes in the first two cases are indicated in a
212       Unix-like  format,  where  the  seven  subfields  indicate
213       whether  the  file:   (1)  is a directory, (2) is readable
214       (always true), (3) is writable, (4) is executable (guessed
215       on  the basis of the extension--.exe, .com, .bat, .cmd and
216       .btm files are assumed to be so), (5) has its archive  bit
217       set, (6) is hidden, and (7) is a system file.  Interpreta-
218       tion of Macintosh file attributes  is  unreliable  because
219       some Macintosh archivers don't store any attributes in the
220       archive.
221
222       Finally, the sixth field indicates the compression  method
223       and possible sub-method used.  There are six methods known
224       at present:  storing (no compression),  reducing,  shrink-
225       ing,  imploding, tokenizing (never publicly released), and
226       deflating.  In addition, there are four levels of reducing
227       (1  through  4); four types of imploding (4K or 8K sliding
228       dictionary, and 2 or 3 Shannon-Fano trees); and four  lev-
229       els  of  deflating  (superfast, fast, normal, maximum com-
230       pression).  zipinfo represents  these  methods  and  their
231       sub-methods  as  follows:   stor;  re:1, re:2, etc.; shrk;
232       i4:2, i8:3, etc.; tokn; and defS, defF, defN, and defX.
233
234       The medium and long listings are almost identical  to  the
235
236Info-ZIP             17 February 2002 (v2.4)                    4
237
238ZIPINFO(1L)                                           ZIPINFO(1L)
239
240       short  format  except  that  they  add  information on the
241       file's compression.  The medium format  lists  the  file's
242       compression  factor  as a percentage indicating the amount
243       of space that has been ``removed'':
244
245  -rw-rws---  1.5 unx    2802 t- 81% defX 11-Aug-91 13:48 perms.2660
246
247       In this example, the file has been compressed by more than
248       a  factor of five; the compressed data are only 19% of the
249       original size.   The  long  format  gives  the  compressed
250       file's size in bytes, instead:
251
252  -rw-rws---  1.5 unx    2802 t-     538 defX 11-Aug-91 13:48 perms.2660
253
254       Adding  the  -T  option  changes the file date and time to
255       decimal format:
256
257  -rw-rws---  1.5 unx    2802 t-     538 defX 910811.134804 perms.2660
258
259       Note that because of limitations in the MS-DOS format used
260       to  store  file times, the seconds field is always rounded
261       to the nearest  even  second.   For  Unix  files  this  is
262       expected  to  change in the next major releases of zip(1L)
263       and unzip.
264
265       In addition to individual file information, a default zip-
266       file listing also includes header and trailer lines:
267
268  Archive:  OS2.zip   5453 bytes   5 files
269  ,,rw,       1.0 hpf     730 b- i4:3 26-Jun-92 23:40 Contents
270  ,,rw,       1.0 hpf    3710 b- i4:3 26-Jun-92 23:33 makefile.os2
271  ,,rw,       1.0 hpf    8753 b- i8:3 26-Jun-92 15:29 os2unzip.c
272  ,,rw,       1.0 hpf      98 b- stor 21-Aug-91 15:34 unzip.def
273  ,,rw,       1.0 hpf      95 b- stor 21-Aug-91 17:51 zipinfo.def
274  5 files, 13386 bytes uncompressed, 4951 bytes compressed:  63.0%
275
276       The  header  line gives the name of the archive, its total
277       size, and the total number of files; the trailer gives the
278       number of files listed, their total uncompressed size, and
279       their total compressed size (not including  any  of  zip's
280       internal  overhead).  If, however, one or more file(s) are
281       provided, the header and trailer  lines  are  not  listed.
282       This behavior is also similar to that of Unix's ``ls -l'';
283       it may be overridden by specifying the -h and  -t  options
284       explicitly.   In  such a case the listing format must also
285       be specified explicitly, since -h or -t (or both)  in  the
286       absence  of  other options implies that ONLY the header or
287       trailer line (or both) is listed.  See the  EXAMPLES  sec-
288       tion  below  for  a  semi-intelligible translation of this
289       nonsense.
290
291       The verbose listing is mostly self-explanatory.   It  also
292       lists  file  comments and the zipfile comment, if any, and
293       the type and number of bytes in any stored  extra  fields.
294
295Info-ZIP             17 February 2002 (v2.4)                    5
296
297ZIPINFO(1L)                                           ZIPINFO(1L)
298
299       Currently  known  types  of  extra fields include PKWARE's
300       authentication (``AV'') info;  OS/2  extended  attributes;
301       VMS  filesystem  info,  both PKWARE and Info-ZIP versions;
302       Macintosh resource forks; Acorn/Archimedes  SparkFS  info;
303       and  so  on.   (Note  that  in  the  case of OS/2 extended
304       attributes--perhaps the most common use of  zipfile  extra
305       fields--the  size of the stored EAs as reported by zipinfo
306       may not match the number given by OS/2's dir command: OS/2
307       always reports the number of bytes required in 16-bit for-
308       mat, whereas zipinfo always reports the 32-bit storage.)
309
310ENVIRONMENT OPTIONS
311       Modifying zipinfo's default behavior via options placed in
312       an  environment  variable  can  be  a  bit  complicated to
313       explain, due  to  zipinfo's  attempts  to  handle  various
314       defaults in an intuitive, yet Unix-like, manner.  (Try not
315       to laugh.)  Nevertheless, there is some underlying  logic.
316       In  brief, there are three ``priority levels'' of options:
317       the default options; environment options, which can  over-
318       ride or add to the defaults; and explicit options given by
319       the user, which can override  or  add  to  either  of  the
320       above.
321
322       The  default  listing  format, as noted above, corresponds
323       roughly to the "zipinfo -hst" command (except  when  indi-
324       vidual zipfile members are specified).  A user who prefers
325       the long-listing format (-l) can make use of the zipinfo's
326       environment variable to change this default:
327
328       Unix Bourne shell:
329              ZIPINFO=-l; export ZIPINFO
330
331       Unix C shell:
332              setenv ZIPINFO -l
333
334       OS/2 or MS-DOS:
335              set ZIPINFO=-l
336
337       VMS (quotes for lowercase):
338              define ZIPINFO_OPTS "-l"
339
340       If,  in addition, the user dislikes the trailer line, zip-
341       info's concept of ``negative  options''  may  be  used  to
342       override  the  default  inclusion  of  the  line.  This is
343       accomplished by preceding the undesired option with one or
344       more  minuses:   e.g., ``-l-t'' or ``--tl'', in this exam-
345       ple.  The first hyphen is the  regular  switch  character,
346       but  the one before the `t' is a minus sign.  The dual use
347       of hyphens may seem a little awkward, but it's  reasonably
348       intuitive nonetheless:  simply ignore the first hyphen and
349       go from there.  It is also consistent with the behavior of
350       the Unix command nice(1).
351
352       As   suggested  above,  the  default  variable  names  are
353
354Info-ZIP             17 February 2002 (v2.4)                    6
355
356ZIPINFO(1L)                                           ZIPINFO(1L)
357
358       ZIPINFO_OPTS for VMS (where the  symbol  used  to  install
359       zipinfo  as  a foreign command would otherwise be confused
360       with the environment variable), and ZIPINFO for all  other
361       operating systems.  For compatibility with zip(1L), ZIPIN-
362       FOOPT is also accepted (don't ask).  If both  ZIPINFO  and
363       ZIPINFOOPT are defined, however, ZIPINFO takes precedence.
364       unzip's diagnostic option (-v with no zipfile name) can be
365       used  to  check  the values of all four possible unzip and
366       zipinfo environment variables.
367
368EXAMPLES
369       To get a basic, short-format listing of the complete  con-
370       tents  of  a ZIP archive storage.zip, with both header and
371       totals lines, use only the archive name as an argument  to
372       zipinfo:
373
374           zipinfo storage
375
376       To  produce  a  basic,  long-format listing (not verbose),
377       including header and totals lines, use -l:
378
379           zipinfo -l storage
380
381       To list the  complete  contents  of  the  archive  without
382       header  and  totals  lines,  either  negate  the -h and -t
383       options or else specify the contents explicitly:
384
385           zipinfo --h-t storage
386           zipinfo storage \*
387
388       (where the backslash is required only if the  shell  would
389       otherwise  expand  the `*' wildcard, as in Unix when glob-
390       bing is turned on--double quotes around the asterisk would
391       have  worked  as  well).   To  turn off the totals line by
392       default, use the environment variable (C shell is  assumed
393       here):
394
395           setenv ZIPINFO --t
396           zipinfo storage
397
398       To get the full, short-format listing of the first example
399       again, given that the environment variable is  set  as  in
400       the  previous  example,  it is necessary to specify the -s
401       option explicitly, since the -t option by  itself  implies
402       that ONLY the footer line is to be printed:
403
404           setenv ZIPINFO --t
405           zipinfo -t storage            [only totals line]
406           zipinfo -st storage           [full listing]
407
408       The  -s option, like -m and -l, includes headers and foot-
409       ers by default, unless  otherwise  specified.   Since  the
410       environment  variable  specified no footers and that has a
411       higher precedence than the  default  behavior  of  -s,  an
412
413Info-ZIP             17 February 2002 (v2.4)                    7
414
415ZIPINFO(1L)                                           ZIPINFO(1L)
416
417       explicit -t option was necessary to produce the full list-
418       ing.  Nothing was indicated about the header, however,  so
419       the  -s  option was sufficient.  Note that both the -h and
420       -t options, when used by themselves or  with  each  other,
421       override  any  default  listing  of member files; only the
422       header and/or footer are printed.  This behavior is useful
423       when  zipinfo  is  used with a wildcard zipfile specifica-
424       tion; the contents of all  zipfiles  are  then  summarized
425       with a single command.
426
427       To  list  information on a single file within the archive,
428       in medium format, specify the filename explicitly:
429
430           zipinfo -m storage unshrink.c
431
432       The specification of any member file, as in this  example,
433       will  override  the  default header and totals lines; only
434       the single line of information about  the  requested  file
435       will  be  printed.   This  is  intuitively  what one would
436       expect when requesting information about  a  single  file.
437       For  multiple  files, it is often useful to know the total
438       compressed and uncompressed size; in such cases -t may  be
439       specified explicitly:
440
441           zipinfo -mt storage "*.[ch]" Mak\*
442
443       To  get maximal information about the ZIP archive, use the
444       verbose option.  It is usually wise  to  pipe  the  output
445       into a filter such as Unix more(1) if the operating system
446       allows it:
447
448           zipinfo -v storage | more
449
450       Finally, to see the most recently modified  files  in  the
451       archive, use the -T option in conjunction with an external
452       sorting utility such as Unix sort(1) (and tail(1) as well,
453       in this example):
454
455           zipinfo -T storage | sort -n +6 | tail -15
456
457       The  -n  option  to  sort(1)  tells it to sort numerically
458       rather than in ASCII order, and the +6 option tells it  to
459       sort  on  the  sixth  field after the first one (i.e., the
460       seventh field).  This assumes  the  default  short-listing
461       format;  if  -m  or  -l is used, the proper sort(1) option
462       would be +7.  The tail(1) command filters out all but  the
463       last  15 lines of the listing.  Future releases of zipinfo
464       may incorporate date/time and filename sorting as built-in
465       options.
466
467TIPS
468       The  author  finds it convenient to define an alias ii for
469       zipinfo on systems that allow aliases (or, on  other  sys-
470       tems,  copy/rename the executable, create a link or create
471
472Info-ZIP             17 February 2002 (v2.4)                    8
473
474ZIPINFO(1L)                                           ZIPINFO(1L)
475
476       a command file with the name ii).  The ii usage  parallels
477       the  common  ll  alias  for long listings in Unix, and the
478       similarity between the outputs of  the  two  commands  was
479       intentional.
480
481BUGS
482       As  with  unzip,  zipinfo's -M (``more'') option is overly
483       simplistic in its handling  of  screen  output;  as  noted
484       above,  it  fails to detect the wrapping of long lines and
485       may thereby cause lines at the top of  the  screen  to  be
486       scrolled off before being read.  zipinfo should detect and
487       treat each occurrence of line-wrap as one additional  line
488       printed.  This requires knowledge of the screen's width as
489       well as its height.  In addition,  zipinfo  should  detect
490       the true screen geometry on all systems.
491
492       zipinfo's listing-format behavior is unnecessarily complex
493       and should be simplified.  (This is not  to  say  that  it
494       will be.)
495
496SEE ALSO
497       ls(1),  funzip(1L), unzip(1L), unzipsfx(1L), zip(1L), zip-
498       cloak(1L), zipnote(1L), zipsplit(1L)
499
500URL
501       The Info-ZIP home page is currently at
502           http://www.info-zip.org/pub/infozip/
503       or
504           ftp://ftp.info-zip.org/pub/infozip/ .
505
506AUTHOR
507       Greg ``Cave Newt''  Roelofs.   ZipInfo  contains  pattern-
508       matching code by Mark Adler and fixes/improvements by many
509       others.  Please refer to the CONTRIBS file  in  the  UnZip
510       source distribution for a more complete list.
511
512Info-ZIP             17 February 2002 (v2.4)                    9
513
514