Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ZIPINFO(1L)							     ZIPINFO(1L)

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 com-
     monly  found on MS-DOS systems.  Such information includes file access per-
     missions, encryption status, type of  compression,  version  and  operating
     system  or  file  system of compressing program, and the like.  The default
     behavior (with no options) is to list single-line entries for each file  in
     the  archive,  with  header and trailer lines providing summary information
     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, how-
     ever, 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 wild-
	    card;  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  charac-
		   ters  within  the brackets is complemented (that is, anything
		   except the characters inside the  brackets  is  considered  a
		   match).   To specify a verbatim left bracket, the three-char-
		   acter sequence ``[[]'' has to be used.

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

     [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  op-
	    erating system.

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

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

     -2     list  filenames only, one per line, but allow headers (-h), trailers
	    (-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 de-
	    fault 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  per-
	    centage, is also listed.

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

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

     -h     list  header line.	The archive name, actual size (in bytes) and to-
	    tal 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.  zipinfo can be
	    terminated	by  pressing the ``q'' key and, on some systems, the En-
	    ter/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  print-
	    ing  of  two  or  more  lines and the likelihood that some text will
	    scroll off the top of the screen before being viewed.  On some  sys-
	    tems 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 totals line
	    is being printed, the values for the entire archive are given.   The
	    compressed	total  size  does  not	include the 12 additional header
	    bytes of each encrypted entry. Note that the total compressed (data)
	    size will never match the actual zipfile size, since the latter  in-
	    cludes  all  of the internal zipfile headers in addition to the com-
	    pressed 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 below).

     -U     [UNICODE_SUPPORT only] modify or disable UTF-8 handling.  When  UNI-
	    CODE_SUPPORT  is available, the option -U forces unzip to escape 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 extracted 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  de-
     fault 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  uncompressed
     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',  indicating
     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 values, depending
     on  whether there is an extended local header and/or an ``extra field'' as-
     sociated with the file (fully explained in PKWare's APPNOTE.TXT, but  basi-
     cally  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 reverse, `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 option
     below)  including	the  storage of VMS file attributes, which is presumably
     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 Ta-
     ble (FAT) file system, and Macintosh.  These are denoted 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 format,
     where the seven subfields indicate whether the file:  (1) is  a  directory,
     (2)  is readable (always true), (3) is writable, (4) is executable (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 be-
     cause 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 compres-
     sion),  reducing,	shrinking,  imploding,	tokenizing  (never  publicly re-
     leased), and deflating.  In addition, there are four levels of reducing  (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,  nor-
     mal, 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  ex-
     cept  that they add information on the file's compression.  The medium for-
     mat 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 for-
     mat 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(1L)
     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  to-
     tal  number  of  files; the trailer gives the number of files listed, their
     total uncompressed size, and their total compressed size (not including any
     of zip's internal overhead).  If, however, one or	more  file(s)  are  pro-
     vided,  the header and trailer lines are not listed.  This behavior is also
     similar to that of Unix's ``ls -l''; it may be overridden 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  include
     PKWARE's  authentication  (``AV'')  info;	OS/2  extended	attributes;  VMS
     filesystem info, both PKWARE  and	Info-ZIP  versions;  Macintosh	resource
     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 reports the number of bytes
     required in 16-bit format, whereas zipinfo always reports the 32-bit  stor-
     age.)

     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 bot-
     tom line are calculated without the extra 12 header bytes of encrypted  en-
     tries.

ENVIRONMENT OPTIONS
     Modifying	zipinfo's  default behavior via options placed in an environment
     variable can be a bit complicated to explain, due to zipinfo's attempts  to
     handle  various  defaults in an intuitive, yet Unix-like, manner.	(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 either of the above.

     The default listing format, as noted  above,  corresponds	roughly  to  the
     "zipinfo  -hst"  command (except when individual zipfile members are speci-
     fied).  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 hy-
     phen 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  reason-
     ably  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 other-
     wise be confused with the environment variable), and ZIPINFO for all  other
     operating	systems.  For compatibility with zip(1L), ZIPINFOOPT is also ac-
     cepted (don't ask).  If both ZIPINFO and ZIPINFOOPT are  defined,	however,
     ZIPINFO  takes  precedence.   unzip's diagnostic option (-v with no zipfile
     name) can be used to check the values of all four possible unzip  and  zip-
     info 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 ex-
     plicitly:

     zipinfo --h-t storage
     zipinfo storage \*

     (where the backslash is required only if the shell would  otherwise  expand
     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 nec-
     essary 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, un-
     less  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 themselves 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 sum-
     marized with a single command.

     To list information on a single file within the archive, in medium  format,
     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 ex-
     pect when requesting information about a single file.  For multiple  files,
     it  is  often useful to know the total compressed and uncompressed 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  option.
     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 + op-
     tion 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 zipinfo may in-
     corporate date/time and filename sorting as built-in options.

TIPS
     The author finds it convenient to define an alias ii for zipinfo on systems
     that allow aliases (or, on other systems, copy/rename the executable,  cre-
     ate a link or create a command file with the name ii).  The ii usage paral-
     lels  the common ll alias for long listings in Unix, and the similarity be-
     tween 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 oc-
     currence of line-wrap as one additional line printed.  This requires knowl-
     edge of the screen's width as well as its	height.   In  addition,  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(1L), unzip(1L),  unzipsfx(1L),  zip(1L),  zipcloak(1L),  zip-
     note(1L), zipsplit(1L)

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(1L)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zipinfo&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help