unzip(1)

NAME
zipinfo - list detailed information about a ZIP archive file

SYNOPSIS
zipinfo [-1lv] file[.zip] [filespec...]

ARGUMENTS
file[.zip] Path of the ZIP archive. The suffix ``.zip'' is applied if the file specified does not exist. Note that self-extracting ZIP files are supported; just specify the ``.exe'' suffix yourself.

[filespec] An optional list of archive members to be processed. Expressions may be used to match multiple members; be sure to quote expressions that contain characters interpreted by the UNIX shell. See PATTERN MATCHING (below) for more details.

OPTIONS
   -1  list filenames only, one per line (useful for pipes)
   -l  list files in Unix "ls -l" format:  default
   -v  list files in verbose, multi-page format

DESCRIPTION
ZipInfo lists technical information about a ZIP archive, including information file access permissions, encryption status, type of compression, version and operating system of compressing program, and the like. The default option is to list files in the following format:

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

The last three fields are clearly 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 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.5 of zip (not available, so don't ask--this is just an example). 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, and the compressed file-size is the sixth (538).

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'' 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 (apparently) 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     165 shrk  9-Aug-91 19:15 perms.0644

Extra fields are used by PKWare for authenticity verification (?) and possibly other purposes, and by an upcoming release of Info-ZIP's zip for VMS (to store file attributes). This example presumably falls into the latter class, then. Note that the file attributes are listed in VMS format. Other possibilities for the host operating system are OS/2 with High Performance File System (HPFS), and DOS or OS/2 with File Allocation Table (FAT) file system, denoted as follows:

arc,hid,rdo,sys dos    4096 b-    2334 i4:2 14-Jul-91 12:58 EA DATA. SF
arc,,rw,    1.0 os2    5358 Tl    1914 i4:3  4-Dec-91 11:33 longfilename.hpfs

File attributes in both of these cases are indicated in a DOS-like format, where the file may or may not have its archive bit set; may be hidden or not; may be read-write or read-only; and may be a system file or not. If the attributes are too long, the version number of the encoding software is omitted. (The information is still available in the verbose listing, however.)

Finally, the seventh field indicates the compression method and possible sub-method used. There are six methods known at present: storing (no compression), reducing, shrinking, imploding, tokenizing, 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 three levels of deflating (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 ``defF,'' ``defN,'' and ``defX.''

The verbose listing is self-explanatory. It also lists file comments and the zipfile comment, if any.

PATTERN MATCHING
All archive members are listed unless a filespec is provided to specify a subset of the archive members. The filespec is similar to an egrep expression, and may contain:

* matches a sequence of 0 or more characters
? matches exactly 1 character
\nnn matches the character having octal code nnn
[...] matches any single character found inside the brackets; ranges are specified by a beginning character, a hyphen, and an ending character. If a '!' follows the left bracket, then the range of characters matched is complemented with respect to the ASCII character set.

TIPS
The author finds it convenient to set up an alias ``ii'' for ZipInfo on systems which allow aliases, or else to set up a batch file ``ii.bat'' or to rename the executable to ``ii.exe'' on systems such as MS-DOS which have no provision for aliases. 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.

AUTHOR
Greg Roelofs (also known as Cave Newt). ZipInfo is partly based on S. H. Smith's unzip and contains pattern-matching code from Thom Henderson, but mostly it was written from scratch.