home *** CD-ROM | disk | FTP | other *** search
-
- ZIPINFO(1L) LOCAL USER COMMANDS ZIPINFO(1L)
-
- NAME
- zipinfo - list detailed information about a ZIP archive
-
- SYNOPSIS
- zipinfo [-12smlvhtz] file[.zip] [file(s) ...]
- [-x xfile(s) ...]
-
- unzip -Z [-12smlvhtz] 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 infor-
- mation includes file access permissions, 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, zipinfo support may not have been compiled in.
-
- ARGUMENTS
- file[.zip]
- Path of the ZIP archive(s). If the file specification
- is a wildcard, each matching file is processed in an
- order determined by the operating system (or file sys-
- tem). 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 `^') fol-
- lows 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).
-
- (Be sure to quote any character which 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
- appended. Note that self-extracting ZIP files are sup-
- ported; just specify the .exe suffix (if any) expli-
- citly.
-
- [file(s)]
- An optional list of archive members to be processed.
- Regular expressions (wildcards) may be used to match
- multiple members; see above. Again, be sure to quote
- expressions that would otherwise be expanded or modi-
- fied by the operating 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 com-
- ments are never printed. It is intended 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 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 except 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.
-
- -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.
- 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 addi-
- tion to the compressed data.
-
- 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 which 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 char-
- acter (`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'' associated with the file
- (explained in PKWare's APPNOTE.TXT). 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 by PKWARE for authenticity verifica-
- tion and possibly other purposes, and by Info-ZIP's zip 1.6
- and later to store OS/2, Macintosh and VMS file attributes.
- This example presumably falls into the latter class, then.
- 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 Sys-
- tem (HPFS), MS-DOS, OS/2 or NT with File Allocation Table
- (FAT) file system, and Macintosh. These are denoted as fol-
- lows:
-
- -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 because some Macin-
- tosh 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 deflat-
- ing. In addition, there are four levels of reducing (1
- through 4); four types of imploding (4K or 8K sliding dic-
- tionary, 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 which
- 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 ori-
- ginal 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 addition to individual file information, a default zip-
- file 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 including 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 overridden by specifying the -h and -t options expli-
- citly. 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 self-explanatory. It also lists file
- comments and the zipfile comment, if any, and the number of
- bytes of OS/2 extended attributes stored. Note that the
- latter number will in general 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 storage.
-
- 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 indivi-
- dual zipfile members are specified). A user who prefers the
- long-listing format (-l) can make use of the zipinfo's
- environment variable to change this default:
-
- 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 (quotes for lowercase)
-
- 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 accom-
- plished 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).
-
- EXAMPLES
- To get a basic, short-format listing of the complete con-
- tents 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 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 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 environ-
- ment 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 zip-
- files are then summarized 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 expect 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 expli-
- citly:
-
- zipinfo -mt storage "*.[ch]" Mak\*
-
- Finally, to get maximal information about the ZIP archive,
- use the verbose option. It is usually wise to pipe the out-
- put into a filter such as more(1):
-
- zipinfo -v storage | more
-
- TIPS
- The author finds it convenient to define an alias ii for
- zipinfo on systems which allow aliases (or, on other sys-
- tems, copy/rename the executable, 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 similar-
- ity between the outputs of the two commands was intentional.
-
- BUGS
- None known at this time, but we're always delighted to find
- a good one.
-
- SEE ALSO
- ls(1), funzip(1), unzip(1), zip(1), zipcloak(1), zipnote(1),
- zipsplit(1)
-
- AUTHOR
- Greg Roelofs (a.k.a. Cave Newt). ZipInfo contains pattern-
- matching code by Mark Adler, and the OS/2 extra-field code
- is by Kai Uwe Rommel; many other have contributed fixes and
- improvements. Please refer to the CONTRIBS file in the
- UnZip source distribution for a more complete list.
-
- Info-ZIP Last change: 7 Feb 94 v2.0
-