dwww Home | Manual pages | Find package

ZIPINFO(1)                  General Commands Manual                  ZIPINFO(1)

NAME
       zipinfo - list detailed information about a ZIP archive

SYNOPSIS
       zipinfo [-12smlvhMtTz] file[.zip] [file(s) ...] [-x xfile(s) ...]

       unzip -Z [-12smlvhMtTz] file[.zip] [file(s) ...] [-x xfile(s) ...]

DESCRIPTION
       zipinfo  lists  technical information about files in a ZIP archive, most
       commonly found on MS-DOS systems.  Such information includes file access
       permissions, encryption status, type of compression, version and operat-
       ing system or file system of compressing program, and the like.  The de-
       fault behavior (with no options) is to list single-line entries for each
       file in the archive, with header and trailer lines providing summary in-
       formation for the entire archive.  The format is a  cross  between  Unix
       ``ls  -l''  and  ``unzip  -v''  output.  See DETAILED DESCRIPTION below.
       Note that zipinfo is the same program as unzip (under Unix,  a  link  to
       it);  on  some  systems,  however, zipinfo support may have been omitted
       when unzip was compiled.

ARGUMENTS
       file[.zip]
              Path of the ZIP archive(s).  If the file specification is a wild-
              card, each matching file is processed in an order  determined  by
              the  operating system (or file system).  Only the filename can be
              a wildcard; the path itself  cannot.   Wildcard  expressions  are
              similar to Unix egrep(1) (regular) expressions and may contain:

              *      matches a sequence of 0 or more characters

              ?      matches exactly 1 character

              [...]  matches  any  single  character found inside the brackets;
                     ranges are specified by a beginning character,  a  hyphen,
                     and  an  ending  character.   If an exclamation point or a
                     caret (`!' or `^') follows  the  left  bracket,  then  the
                     range  of  characters  within the brackets is complemented
                     (that is, anything except the characters inside the brack-
                     ets is considered a match).  To specify  a  verbatim  left
                     bracket,  the  three-character  sequence ``[[]'' has to be
                     used.

              (Be sure to quote any character that might  otherwise  be  inter-
              preted  or  modified  by the operating system, particularly under
              Unix and VMS.)  If no matches are found, the specification is as-
              sumed to be a literal filename; and if that also fails, the  suf-
              fix  .zip  is  appended.  Note that self-extracting ZIP files are
              supported, as with any other ZIP archive; just specify  the  .exe
              suffix (if any) explicitly.

       [file(s)]
              An optional list of archive members to be processed, separated by
              spaces.   (VMS versions compiled with VMSCLI defined must delimit
              files with commas instead.)  Regular expressions (wildcards)  may
              be  used to match multiple members; see above.  Again, be sure to
              quote expressions that would otherwise be expanded or modified by
              the operating system.

       [-x xfile(s)]
              An optional list of archive members to be excluded from  process-
              ing.

OPTIONS
       -1     list filenames only, one per line.  This option excludes all oth-
              ers;  headers,  trailers  and zipfile comments are never printed.
              It is intended for use in Unix shell scripts.

       -2     list filenames only, one per line, but allow headers (-h), trail-
              ers (-t) and zipfile comments (-z), as well.  This option may  be
              useful in cases where the stored filenames are particularly long.

       -s     list  zipfile  info  in short Unix ``ls -l'' format.  This is the
              default behavior; see below.

       -m     list zipfile info in medium Unix ``ls -l'' format.  Identical  to
              the -s output, except that the compression factor, expressed as a
              percentage, is also listed.

       -l     list  zipfile info in long Unix ``ls -l'' format.  As with -m ex-
              cept that the compressed size (in bytes) is  printed  instead  of
              the compression ratio.

       -v     list zipfile information in verbose, multi-page format.

       -h     list  header  line.  The archive name, actual size (in bytes) and
              total number of files is printed.

       -M     pipe all output through an internal pager  similar  to  the  Unix
              more(1)  command.   At  the end of a screenful of output, zipinfo
              pauses with a ``--More--'' prompt;  the  next  screenful  may  be
              viewed by pressing the Enter (Return) key or the space bar.  zip-
              info  can  be  terminated  by pressing the ``q'' key and, on some
              systems, the Enter/Return key.  Unlike Unix more(1), there is  no
              forward-searching  or  editing capability.  Also, zipinfo doesn't
              notice if long lines wrap at the edge of the screen,  effectively
              resulting in the printing of two or more lines and the likelihood
              that some text will scroll off the top of the screen before being
              viewed.   On  some  systems  the number of available lines on the
              screen is not detected, in which case zipinfo assumes the  height
              is 24 lines.

       -t     list  totals  for  files  listed or for all files.  The number of
              files listed, their uncompressed and compressed total sizes , and
              their overall compression factor is printed; or, if only the  to-
              tals line is being printed, the values for the entire archive are
              given.   The  compressed total size does not include the 12 addi-
              tional header bytes of each encrypted entry. Note that the  total
              compressed  (data) size will never match the actual zipfile size,
              since the latter includes all of the internal zipfile headers  in
              addition to the compressed data.

       -T     print the file dates and times in a sortable decimal format (yym-
              mdd.hhmmss).   The default date format is a more standard, human-
              readable version with abbreviated month names (see  examples  be-
              low).

       -U     [UNICODE_SUPPORT  only]  modify  or disable UTF-8 handling.  When
              UNICODE_SUPPORT is available, the option -U forces unzip  to  es-
              cape  all  non-ASCII  characters  from  UTF-8  coded filenames as
              ``#Uxxxx''.  This option is mainly provided for debugging purpose
              when the fairly new UTF-8 support is suspected to mangle  up  ex-
              tracted filenames.

              The  option  -UU  allows  to  entirely disable the recognition of
              UTF-8 encoded filenames.  The handling of filename codings within
              unzip falls back to the behaviour of previous versions.

       -z     include the archive comment (if any) in the listing.

DETAILED DESCRIPTION
       zipinfo has a number of modes, and its behavior can be rather  difficult
       to  fathom  if  one  isn't familiar with Unix ls(1) (or even if one is).
       The default behavior is to list files in the following format:

  -rw-rws---  1.9 unx    2802 t- defX 11-Aug-91 13:48 perms.2660

       The last three fields are the modification date and time  of  the  file,
       and  its  name.   The case of the filename is respected; thus files that
       come from MS-DOS PKZIP are always capitalized.  If the file  was  zipped
       with  a  stored  directory  name,  that is also displayed as part of the
       filename.

       The second and third fields indicate that the file was zipped under Unix
       with version 1.9 of zip.  Since it comes from Unix, the file permissions
       at the beginning of the line are printed in  Unix  format.   The  uncom-
       pressed file-size (2802 in this example) is the fourth field.

       The  fifth field consists of two characters, either of which may take on
       several values.  The first character may be either `t' or `b',  indicat-
       ing  that  zip believes the file to be text or binary, respectively; but
       if the file is encrypted, zipinfo notes this fact  by  capitalizing  the
       character (`T' or `B').  The second character may also take on four val-
       ues,  depending  on  whether there is an extended local header and/or an
       ``extra field'' associated with the file (fully  explained  in  PKWare's
       APPNOTE.TXT,  but  basically  analogous to pragmas in ANSI C--i.e., they
       provide a standard  way  to  include  non-standard  information  in  the
       archive).   If  neither exists, the character will be a hyphen (`-'); if
       there is an extended local header but no extra field, `l';  if  the  re-
       verse,  `x';  and  if both exist, `X'.  Thus the file in this example is
       (probably) a text file, is not encrypted, and has neither an extra field
       nor an extended local header associated with it.  The example below,  on
       the other hand, is an encrypted binary file with an extra field:

  RWD,R,R     0.9 vms     168 Bx shrk  9-Aug-91 19:15 perms.0644

       Extra fields are used for various purposes (see discussion of the -v op-
       tion  below) including the storage of VMS file attributes, which is pre-
       sumably the case here.  Note that the file attributes are listed in  VMS
       format.   Some  other possibilities for the host operating system (which
       is actually a misnomer--host file system is more correct)  include  OS/2
       or  NT with High Performance File System (HPFS), MS-DOS, OS/2 or NT with
       File Allocation Table (FAT) file system, and Macintosh.  These  are  de-
       noted as follows:

  -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

       File attributes in the first two cases are indicated in a Unix-like for-
       mat,  where the seven subfields indicate whether the file:  (1) is a di-
       rectory, (2) is readable (always true), (3) is  writable,  (4)  is  exe-
       cutable  (guessed  on the basis of the extension--.exe, .com, .bat, .cmd
       and .btm files are assumed to be so), (5) has its archive bit  set,  (6)
       is  hidden,  and (7) is a system file.  Interpretation of Macintosh file
       attributes is unreliable because some Macintosh  archivers  don't  store
       any attributes in the archive.

       Finally,  the  sixth field indicates the compression method and possible
       sub-method used.  There are six methods known at present:   storing  (no
       compression), reducing, shrinking, imploding, tokenizing (never publicly
       released),  and deflating.  In addition, there are four levels of reduc-
       ing (1 through 4); four types of imploding (4K or 8K sliding dictionary,
       and 2 or 3 Shannon-Fano trees); and four levels of deflating (superfast,
       fast, normal, maximum compression).  zipinfo  represents  these  methods
       and  their  sub-methods as follows:  stor; re:1, re:2, etc.; shrk; i4:2,
       i8:3, etc.; tokn; and defS, defF, defN, and defX.

       The medium and long listings are almost identical to  the  short  format
       except  that they add information on the file's compression.  The medium
       format lists the file's compression factor as  a  percentage  indicating
       the amount of space that has been ``removed'':

  -rw-rws---  1.5 unx    2802 t- 81% defX 11-Aug-91 13:48 perms.2660

       In  this  example, the file has been compressed by more than a factor of
       five; the compressed data are only 19% of the original size.   The  long
       format gives the compressed file's size in bytes, instead:

  -rw-rws---  1.5 unx    2802 t-     538 defX 11-Aug-91 13:48 perms.2660

       In  contrast  to the unzip listings, the compressed size figures in this
       listing format denote the complete size of  compressed  data,  including
       the 12 extra header bytes in case of encrypted entries.

       Adding the -T option changes the file date and time to decimal format:

  -rw-rws---  1.5 unx    2802 t-     538 defX 910811.134804 perms.2660

       Note that because of limitations in the MS-DOS format used to store file
       times,  the  seconds field is always rounded to the nearest even second.
       For Unix files this is expected to change in the next major releases  of
       zip(1) and unzip.

       In  addition  to  individual file information, a default zipfile listing
       also includes header and trailer lines:

  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 uncompressed, 4951 bytes compressed:  63.0%

       The header line gives the name of the archive, its total size,  and  the
       total  number  of  files;  the trailer gives the number of files listed,
       their total uncompressed size, and their total compressed size (not  in-
       cluding  any  of  zip's  internal  overhead).   If, however, one or more
       file(s) are provided, the header and trailer lines are not listed.  This
       behavior is also similar to that of Unix's ``ls -l''; it may be overrid-
       den by specifying the -h and -t options explicitly.  In such a case  the
       listing  format  must  also  be specified explicitly, since -h or -t (or
       both) in the absence of other options implies that ONLY  the  header  or
       trailer  line (or both) is listed.  See the EXAMPLES section below for a
       semi-intelligible translation of this nonsense.

       The verbose listing is mostly self-explanatory.  It also lists file com-
       ments and the zipfile comment, if any, and the type and number of  bytes
       in  any  stored extra fields.  Currently known types of extra fields in-
       clude PKWARE's authentication (``AV'') info; OS/2  extended  attributes;
       VMS  filesystem  info,  both PKWARE and Info-ZIP versions; Macintosh re-
       source forks; Acorn/Archimedes SparkFS info; and so on.  (Note  that  in
       the  case  of  OS/2  extended attributes--perhaps the most common use of
       zipfile extra fields--the size of the stored EAs as reported by  zipinfo
       may  not  match  the number given by OS/2's dir command: OS/2 always re-
       ports the number of bytes required in 16-bit format, whereas zipinfo al-
       ways reports the 32-bit storage.)

       Again, the compressed size figures of the individual entries include the
       12 extra header bytes for encrypted entries.  In contrast,  the  archive
       total  compressed  size  and  the average compression ratio shown in the
       summary bottom line are calculated without the extra 12 header bytes  of
       encrypted entries.

ENVIRONMENT OPTIONS
       Modifying  zipinfo's  default behavior via options placed in an environ-
       ment variable can be a bit complicated to explain, due to zipinfo's  at-
       tempts  to  handle various defaults in an intuitive, yet Unix-like, man-
       ner.  (Try not to laugh.)  Nevertheless, there is some underlying logic.
       In brief, there are three ``priority levels'' of options:   the  default
       options; environment options, which can override or add to the defaults;
       and explicit options given by the user, which can override or add to ei-
       ther of the above.

       The  default  listing format, as noted above, corresponds roughly to the
       "zipinfo -hst" command (except when individual zipfile members are spec-
       ified).  A user who prefers the long-listing format (-l) can make use of
       the zipinfo's environment variable to change this default:

       Unix Bourne shell:
              ZIPINFO=-l; export ZIPINFO

       Unix C shell:
              setenv ZIPINFO -l

       OS/2 or MS-DOS:
              set ZIPINFO=-l

       VMS (quotes for lowercase):
              define ZIPINFO_OPTS "-l"

       If, in addition, the user dislikes the trailer line,  zipinfo's  concept
       of ``negative options'' may be used to override the default inclusion of
       the  line.   This is accomplished by preceding the undesired option with
       one or more minuses:  e.g., ``-l-t'' or ``--tl'', in this example.   The
       first hyphen is the regular switch character, but the one before the `t'
       is a minus sign.  The dual use of hyphens may seem a little awkward, but
       it's  reasonably  intuitive nonetheless:  simply ignore the first hyphen
       and go from there.  It is also consistent with the behavior of the  Unix
       command nice(1).

       As  suggested above, the default variable names are ZIPINFO_OPTS for VMS
       (where the symbol used to install zipinfo as  a  foreign  command  would
       otherwise  be  confused  with the environment variable), and ZIPINFO for
       all other operating systems.  For compatibility with zip(1),  ZIPINFOOPT
       is  also  accepted  (don't ask).  If both ZIPINFO and ZIPINFOOPT are de-
       fined, however, ZIPINFO takes precedence.  unzip's diagnostic option (-v
       with no zipfile name) can be used to check the values of all four possi-
       ble unzip and zipinfo environment variables.

EXAMPLES
       To get a basic, short-format listing of the complete contents of  a  ZIP
       archive  storage.zip,  with  both  header and totals lines, use only the
       archive name as an argument to zipinfo:

       zipinfo storage

       To produce a basic, long-format listing (not verbose), including  header
       and totals lines, use -l:

       zipinfo -l storage

       To  list  the complete contents of the archive without header and totals
       lines, either negate the -h and -t options or else specify the  contents
       explicitly:

       zipinfo --h-t storage
       zipinfo storage \*

       (where  the  backslash is required only if the shell would otherwise ex-
       pand the `*' wildcard, as in Unix when  globbing  is  turned  on--double
       quotes  around the asterisk would have worked as well).  To turn off the
       totals line by default, use the environment variable (C shell is assumed
       here):

       setenv ZIPINFO --t
       zipinfo storage

       To get the full, short-format listing of the first example again,  given
       that  the  environment variable is set as in the previous example, it is
       necessary to specify the -s option explicitly, since the  -t  option  by
       itself implies that ONLY the footer line is to be printed:

       setenv ZIPINFO --t
       zipinfo -t storage            [only totals line]
       zipinfo -st storage           [full listing]

       The  -s option, like -m and -l, includes headers and footers by default,
       unless otherwise specified.  Since the environment variable specified no
       footers and that has a higher precedence than the  default  behavior  of
       -s,  an  explicit  -t  option was necessary to produce the full listing.
       Nothing was indicated about the header, however, so the  -s  option  was
       sufficient.   Note  that  both the -h and -t options, when used by them-
       selves or with each other, override any default listing of member files;
       only the header and/or footer are printed.  This behavior is useful when
       zipinfo is used with a wildcard zipfile specification; the  contents  of
       all zipfiles are then summarized with a single command.

       To  list information on a single file within the archive, in medium for-
       mat, specify the filename explicitly:

       zipinfo -m storage unshrink.c

       The specification of any member file, as in this example, will  override
       the default header and totals lines; only the single line of information
       about  the requested file will be printed.  This is intuitively what one
       would expect when requesting information about a single file.  For  mul-
       tiple  files, it is often useful to know the total compressed and uncom-
       pressed size; in such cases -t may be specified explicitly:

       zipinfo -mt storage "*.[ch]" Mak\*

       To get maximal information about the ZIP archive, use  the  verbose  op-
       tion.   It is usually wise to pipe the output into a filter such as Unix
       more(1) if the operating system allows it:

       zipinfo -v storage | more

       Finally, to see the most recently modified files in the archive, use the
       -T option in conjunction with an external sorting utility such  as  Unix
       sort(1) (and sed(1) as well, in this example):

       zipinfo -T storage | sort -nr -k 7 | sed 15q

       The  -nr option to sort(1) tells it to sort numerically in reverse order
       rather than in textual order, and the -k 7 option tells it  to  sort  on
       the seventh field.  This assumes the default short-listing format; if -m
       or  -l is used, the proper sort(1) option would be -k 8.  Older versions
       of sort(1) do not support the -k option, but you can use the traditional
       + option instead, e.g., +6 instead of -k 7.  The sed(1) command  filters
       out  all but the first 15 lines of the listing.  Future releases of zip-
       info may incorporate date/time and filename sorting as built-in options.

TIPS
       The author finds it convenient to define an alias ii for zipinfo on sys-
       tems that allow aliases (or, on  other  systems,  copy/rename  the  exe-
       cutable,  create a link or create a command file with the name ii).  The
       ii usage parallels the common ll alias for long listings  in  Unix,  and
       the similarity between the outputs of the two commands was intentional.

BUGS
       As  with  unzip,  zipinfo's -M (``more'') option is overly simplistic in
       its handling of screen output; as noted above, it fails  to  detect  the
       wrapping  of  long  lines  and may thereby cause lines at the top of the
       screen to be scrolled off before being read.  zipinfo should detect  and
       treat each occurrence of line-wrap as one additional line printed.  This
       requires  knowledge of the screen's width as well as its height.  In ad-
       dition, zipinfo should detect the true screen geometry on all systems.

       zipinfo's listing-format behavior is unnecessarily complex and should be
       simplified.  (This is not to say that it will be.)

SEE ALSO
       ls(1),  funzip(1),  unzip(1),  unzipsfx(1),  zip(1),  zipcloak(1),  zip-
       note(1), zipsplit(1)

URL
       The Info-ZIP home page is currently at
       http://www.info-zip.org/pub/infozip/
       or
       ftp://ftp.info-zip.org/pub/infozip/ .

AUTHOR
       Greg  ``Cave  Newt'' Roelofs.  ZipInfo contains pattern-matching code by
       Mark Adler and fixes/improvements by many others.  Please refer  to  the
       CONTRIBS file in the UnZip source distribution for a more complete list.

Info-ZIP                      20 April 2009 (v3.0)                   ZIPINFO(1)

Generated by dwww version 1.16 on Tue Dec 16 04:44:11 CET 2025.