unzip - Manpage - Tux24 Net - Linux Unix Network
A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z




NAME
    unzip - list, test and extract compressed files in a ZIP archive

SYNOPSIS
    unzip  [-Z]  [-cflptuvz[abjnoqsCLMVX$/:]]  file[.zip]  [file(s) ...]
    [-x xfile(s) ...] [-d exdir]

DESCRIPTION
    unzip will list, test, or extract files from a ZIP archive, commonly
    found on MS-DOS systems. The default behavior (with no options) is to
    extract into the current directory (and subdirectories below it) all
    files from the  specified ZIP archive.  A companion program, zip(1L),
    creates ZIP archives; both programs are compatible with archives cre-
    ated by  PKWARE's PKZIP and PKUNZIP for MS-DOS, but in many cases the
    program options or default behaviors differ.

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 system).  Only the filename can
    be a wildcard; the path itself cannot. Wildcard expressions are
    similar to those supported in commonly used Unix shells (sh,
    ksh, csh) 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
     brackets is considered a match).

    (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
    assumed to be a literal filename; and if that also fails, the
    suffix .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. See -v in OPTIONS below.)
    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.  Since wildcard characters match  directory separators
    (`/'), this option may be used to exclude any files that are in
    subdirectories. For example, ``unzip foo *.[ch] -x */*''  would
    extract all C source files in the main directory, but none in
    any subdirectories. Without the -x option, all C  source  files
    in all directories within the zipfile would be extracted.

    [-d exdir]
    An optional directory to which to extract files. By default,
    all files and subdirectories are recreated in the current direc-
    tory; the -d option allows extraction in an arbitrary directory
    (always assuming one has permission to write to the directory).
    This option need not appear at the end of the command line; it
    is also accepted before the zipfile specification (with the nor-
    mal options), immediately after the zipfile specification, or
    between the file(s) and the -x option. The option and directory
    may be concatenated without any white space between them, but
    note that this may cause normal shell behavior to be suppressed.
    In particular, ``-d ~''  (tilde) is expanded by Unix C shells
    into the name of the user's home directory, but ``-d~'' is
    treated as a literal subdirectory ``~'' of the current direc-
    tory.

OPTIONS
    Note that, in order to support obsolescent hardware, unzip's  usage
    screen is limited to 22 or 23 lines and should therefore be considered
    only a reminder of the basic unzip syntax rather than an exhaustive
    list of all possible flags. The exhaustive list follows:

    -Z   zipinfo(1L) mode.  If the first option on the command line is
    -Z, the remaining options are taken to be  zipinfo(1L) options.
    See the appropriate manual page for a description of these
    options.

    -A   [OS/2, Unix DLL] print extended help for the DLL's programming
    interface (API).

    -c   extract files to stdout/screen (``CRT''). This option is simi-
    lar to the -p option except that  the name of each file is
    printed as it is extracted, the -a option is allowed, and ASCII-
    EBCDIC conversion is automatically performed if appropriate.
    This option is not listed in the unzip usage screen.

    -f   freshen existing  files,  i.e., extract  only those files that
    already exist on disk and that are newer than the  disk copies.
    By default unzip queries before overwriting, but the -o option
    may be used to suppress the queries. Note that under many oper-
    ating systems, the TZ (timezone) environment variable must be
    set correctly in order for -f and -u to work properly (under
    Unix the  variable is usually set automatically). The reasons
    for this are somewhat subtle but have to do with the differences
    between DOS-format file times (always local time) and Unix-for-
    mat times (always in GMT/UTC) and the necessity to compare the
    two.  A typical  TZ value is ``PST8PDT'' (US Pacific time with
    automatic adjustment for  Daylight Savings Time or ``summer
    time'').

    -l   list archive files (short format). The names, uncompressed file
    sizes and modification dates and times of  the specified  files
    are printed, along with totals for all files specified. If
    UnZip was compiled with OS2_EAS defined,  the -l option also
    lists columns for the sizes of stored OS/2 extended attributes
    (EAs) and OS/2 access control lists (ACLs).  In addition, the
    zipfile comment and individual file comments (if any) are dis-
    played. If a file was archived from a single-case file system
    (for example, the old MS-DOS FAT file system) and the -L option
    was given, the filename is converted to lowercase  and is pre-
    fixed with a caret (^).

    -p   extract files to pipe (stdout). Nothing but the file data is
    sent to stdout, and the files are  always  extracted in binary
    format, just as they are stored (no conversions).

    -t   test archive files. This option extracts each specified file in
    memory and compares the CRC (cyclic redundancy check, an
    enhanced checksum) of the expanded file with the original file's
    stored CRC value.

    -T   [most OSes] set the timestamp on the archive(s) to that of the
    newest file in each one. This corresponds to zip's -go option
    except that it can be used on wildcard zipfiles (e.g., ``unzip
    -T \*.zip'') and is much faster.

    -u   update existing files and create new  ones if needed. This
    option performs the same function as the -f option, extracting
    (with query) files that are newer than those with the same name
    on disk, and in addition it extracts those files  that do not
    already exist on disk. See -f above for information on setting
    the timezone properly.

    -v   be verbose or print diagnostic version info.  This option has
    evolved and now behaves as both an option and a modifier.  As an
    option it has two purposes: when a zipfile is specified with no
    other options, -v lists archive files verbosely, adding to the
    basic -l info the compression method, compressed size, compres-
    sion ratio and 32-bit CRC. When no zipfile is specified (that
    is, the complete command is simply ``unzip -v''),  a diagnostic
    screen is printed.  In  addition to the normal header with
    release date and version, unzip lists the home Info-ZIP ftp site
    and where to find a list of other ftp and non-ftp sites; the
    target operating system for which it was compiled, as well as
    (possibly) the hardware on which it was compiled, the compiler
    and version used, and the compilation date; any special compila-
    tion options that might affect the program's operation (see also
    DECRYPTION below); and any options stored in environment  vari-
    ables that might do the same (see ENVIRONMENT OPTIONS below).
    As a modifier it works in conjunction with other options (e.g.,
    -t) to produce more verbose or debugging output; this is not yet
    fully implemented but will be in future releases.

    -z   display only the archive comment.

MODIFIERS
    -a   convert text files. Ordinarily all files are extracted exactly
    as they are stored (as ``binary'' files). The -a option causes
    files identified by zip as text files (those with the `t'  label
    in zipinfo listings, rather than `b') to be automatically
    extracted as such, converting line endings, end-of-file charac-
    ters and  the character set itself as necessary.  (For example,
    Unix files use line feeds (LFs) for end-of-line (EOL) and have
    no end-of-file (EOF) marker; Macintoshes use carriage returns
    (CRs) for EOLs; and most PC operating systems use CR+LF for EOLs
    and control-Z for EOF.  In addition, IBM mainframes and the
    Michigan Terminal System use EBCDIC rather than the more common
    ASCII character set, and NT supports Unicode.) Note that zip's
    identification of text files is  by no  means perfect; some
    ``text'' files may actually be binary and vice versa.  unzip
    therefore prints ``[text]'' or ``[binary]'' as a  visual  check
    for each  file it extracts when using the -a option. The -aa
    option forces all files to be extracted as text, regardless of
    the supposed file type.

    -b   [general] treat all files as binary (no text conversions). This
    is a shortcut for ---a.

    -b   [Tandem] force the creation files with filecode type 180  ('C')
    when extracting Zip entries marked as "text". (On Tandem, -a is
    enabled by default, see above).

    -b   [VMS] auto-convert binary files (see -a above) to  fixed-length,
    512-byte record format.  Doubling the option (-bb) forces all
    files to be extracted in this format. When extracting to  stan-
    dard output (-c or -p option in effect), the default conversion
    of text record delimiters is disabled for binary (-b) resp. all
    (-bb) files.

    -B   [Unix only, and only if compiled with UNIXBACKUP defined] save a
    backup copy of each overwritten file with a tilde appended
    (e.g., the old copy of ``foo'' is renamed to ``foo~''). This is
    similar to the default behavior of emacs(1) in many locations.

    -C   match filenames case-insensitively. unzip's philosophy is ``you
    get what  you ask for'' (this is also responsible for the -L/-U
    change; see the relevant options below). Because some file sys-
    tems are  fully case-sensitive (notably those under the Unix
    operating system) and because both ZIP archives and unzip itself
    are portable across platforms, unzip's default behavior is to
    match both wildcard and  literal filenames case-sensitively.
    That is,  specifying ``makefile'' on the command line will only
    match ``makefile'' in the archive, not ``Makefile'' or ``MAKE-
    FILE'' (and similarly for wildcard specifications). Since this
    does not correspond to the behavior of many other operating/file
    systems (for example, OS/2 HPFS, which preserves mixed case but
    is not sensitive to it), the -C option may be used to force all
    filename matches to be case-insensitive.  In the example above,
    all three files would then match ``makefile'' (or ``make*'', or
    similar).  The -C option affects files in both the normal file
    list and the excluded-file list (xlist).

    -E   [MacOS only] display contents of MacOS extra  field during
    restore operation.

    -F   [Acorn only] suppress removal of NFS filetype extension from
    stored filenames.

    -F   [non-Acorn systems supporting long filenames with embedded com-
    mas, and  only if compiled with ACORN_FTYPE_NFS defined] trans-
    late filetype information from ACORN RISC OS extra field blocks
    into a NFS filetype extension and append it to the names of the
    extracted files. (When the stored filename appears to already
    have an appended NFS filetype extension, it is replaced by the
    info from the extra field.)

    -i   [MacOS only] ignore filenames stored in  MacOS extra fields.
    Instead, the most compatible filename stored in the generic part
    of the entry's header is used.

    -j   junk paths. The archive's directory structure is not recreated;
    all files are deposited in the extraction directory (by default,
    the current one).

    -J   [BeOS only] junk file attributes.  The file's BeOS  file
    attributes are not restored, just the file's data.

    -J   [MacOS only] ignore MacOS extra fields. All Macintosh specific
    info is skipped. Data-fork and resource-fork are restored as
    separate files.

    -L   convert to lowercase any filename originating on an uppercase-
    only operating system or file system. (This was unzip's default
    behavior in releases prior to 5.11; the new default behavior is
    identical to the old behavior with the -U option, which is now
    obsolete and will be removed in a future release.) Depending on
    the archiver, files archived under single-case  file systems
    (VMS, old MS-DOS FAT, etc.) may be stored as all-uppercase
    names; this can be ugly or inconvenient when extracting  to a
    case-preserving file system such as OS/2 HPFS or a case-sensi-
    tive one such as  under Unix. By default unzip lists and
    extracts such filenames  exactly as they're stored (excepting
    truncation, conversion of unsupported characters, etc.); this
    option causes the names of all files from certain systems to be
    converted to lowercase. The -LL option forces conversion of
    every filename to lowercase, regardless of the originating file
    system.

    -M   pipe all output through an internal pager similar  to the Unix
    more(1) command.  At the end of a screenful of output, unzip
    pauses with a ``--More--'' prompt; the next screenful may be
    viewed by pressing the  Enter (Return) key or the space bar.
    unzip 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, unzip 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 likeli-
    hood 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 unzip assumes the
    height is 24 lines.

    -n   never overwrite existing files. If a file already exists, skip
    the extraction of that file without prompting. By default unzip
    queries before extracting any file that already exists; the user
    may choose to overwrite only the current file, overwrite all
    files, skip extraction of the current file, skip extraction of
    all existing files, or rename the current file.

    -N   [Amiga] extract file comments as Amiga filenotes.  File comments
    are created with the -c option of zip(1L), or with the -N option
    of the Amiga port of zip(1L), which stores filenotes as com-
    ments.

    -o   overwrite existing files without prompting. This is a dangerous
    option, so use it with care. (It is often used with -f, how-
    ever, and is the only way to overwrite  directory EAs  under
    OS/2.)

    -P password
    use password to  decrypt encrypted zipfile entries (if any).
    THIS IS INSECURE!  Many multi-user operating systems provide
    ways for  any user to see the current command line of any other
    user; even on stand-alone systems there is always the threat of
    over-the-shoulder  peeking.  Storing the plaintext password as
    part of a command line in an automated script is even worse.
    Whenever possible, use the non-echoing, interactive prompt to
    enter passwords. (And where security is truly important, use
    strong encryption such as Pretty Good Privacy instead of the
    relatively weak encryption provided by standard zipfile utili-
    ties.)

    -q   perform operations quietly (-qq = even quieter). Ordinarily
    unzip prints the names of the files it's extracting or testing,
    the extraction methods, any file or zipfile comments that may be
    stored in the archive, and possibly a summary when finished with
    each archive.  The -q[q] options suppress the printing of some
    or all of these messages.

    -s   [OS/2, NT, MS-DOS] convert spaces in filenames to underscores.
    Since all PC operating systems allow spaces in filenames, unzip
    by default extracts filenames with spaces  intact (e.g.,
    ``EA DATA. SF'').  This can be awkward, however, since MS-DOS in
    particular does not gracefully support spaces in filenames.
    Conversion of spaces to underscores can eliminate the awkward-
    ness in some cases.

    -U   (obsolete; to be removed in a future release) leave filenames
    uppercase if created under MS-DOS, VMS, etc. See -L above.

    -V   retain (VMS) file version numbers. VMS files can be stored with
    a version number, in the format file.ext;##.  By default the
    ``;##'' version numbers  are stripped, but this option allows
    them to be retained. (On file systems that limit  filenames to
    particularly short lengths, the version numbers may be truncated
    or stripped regardless of this option.)

    -X   [VMS, Unix, OS/2, NT] restore owner/protection info (UICs) under
    VMS, or user and group info (UID/GID) under Unix, or access con-
    trol lists (ACLs) under certain network-enabled versions of OS/2
    (Warp Server with IBM LAN Server/Requester 3.0 to 5.0; Warp Con-
    nect with IBM Peer 1.0), or security ACLs under Windows NT.  In
    most cases this will require special system privileges, and dou-
    bling the option (-XX) under NT instructs unzip to use privi-
    leges for extraction; but under Unix, for example, a user who
    belongs to several groups can restore files owned by any of
    those groups, as long as the user IDs match his or her own.
    Note that ordinary file attributes are always restored--this
    option applies only to optional, extra ownership info available
    on some operating systems. [NT's access control lists do not
    appear to be especially compatible with OS/2's, so no attempt is
    made at cross-platform portability of access privileges. It is
    not clear under what conditions this would ever be useful any-
    way.]

    -$   [MS-DOS, OS/2, NT] restore the volume label if the extraction
    medium is removable (e.g., a diskette). Doubling the option
    (-$$) allows fixed media (hard disks) to be labelled as  well.
    By default, volume labels are ignored.

    -/ extensions
    [Acorn only] overrides the extension list supplied by Unzip$Ext
    environment variable. During extraction, filename extensions
    that match one of the items in this extension list are swapped
    in front of the base name of the extracted file.

    -:   [all but Acorn, VM/CMS, MVS, Tandem] allows to extract archive
    members into locations outside of the current `` extraction root
    folder''. For security reasons, unzip normally removes ``parent
    dir'' path components (``../'') from the names of extracted
    file. This safety feature (new for version 5.50) prevents unzip
    from accidentally writing files to ``sensitive'' areas outside
    the active extraction folder tree  head.  The -: option lets
    unzip switch back to its previous, more liberal behaviour, to
    allow exact extraction of (older)  archives that  used ``../''
    components to create multiple directory trees at the level of
    the current extraction folder.

ENVIRONMENT OPTIONS
    unzip's default behavior may be modified via options placed in an envi-
    ronment variable. This can be done with any option, but it is probably
    most useful with the -a, -L, -C, -q, -o, or -n modifiers:  make  unzip
    auto-convert text files by default, make it convert filenames from
    uppercase systems to lowercase, make it match names case-insensitively,
    make it  quieter, or make it always overwrite or never overwrite files
    as it extracts them. For example, to make unzip act as quietly as pos-
    sible, only reporting errors, one would use one of the following com-
    mands:

  Unix Bourne shell:
    UNZIP=-qq; export UNZIP

  Unix C shell:
    setenv UNZIP -qq

  OS/2 or MS-DOS:
    set UNZIP=-qq

  VMS (quotes for lowercase):
    define UNZIP_OPTS ""-qq""

    Environment options are, in effect, considered to be just like any
    other command-line options, except that they are effectively the first
    options on the command line. To override an environment option, one
    may use the ``minus operator'' to remove it. For instance, to override
    one of the quiet-flags in the example above, use the command

   unzip --q[other options] zipfile

    The first hyphen is the normal switch character, and the  second  is a
    minus sign, acting on the q option. Thus the effect here is to cancel
    one quantum of quietness. To cancel both quiet flags, two (or  more)
    minuses may be used:

   unzip -t--q zipfile
   unzip ---qt zipfile

    (the two are equivalent). This may seem awkward or confusing, but it
    is reasonably intuitive:  just ignore the first  hyphen  and go from
    there. It is also consistent with the behavior of Unix nice(1).

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

    The timezone variable (TZ) should be set according to the local  time-
    zone in order for the -f and -u to operate correctly. See the descrip-
    tion of -f above for details. This variable may also be  necessary in
    order for timestamps on extracted files to be set correctly.  Under
    Windows 95/NT unzip should know the correct timezone even if TZ is
    unset, assuming the timezone is correctly set in the Control Panel.

DECRYPTION
    Encrypted archives are fully supported by Info-ZIP software, but due to
    United States export restrictions, de-/encryption support might be dis-
    abled in your compiled binary.  However, since spring 2000, US export
    restrictions have been liberated, and our source archives do now
    include full crypt code. In case you need binary distributions with
    crypt support enabled, see the file ``WHERE'' in any Info-ZIP source or
    binary distribution for locations both inside and outside the US.

    Some compiled versions of unzip may not support decryption. To check a
    version for crypt support, either attempt to  test or extract an
    encrypted archive, or else check unzip's diagnostic screen (see the -v
    option above) for ``[decryption]'' as one of the special compilation
    options.

    As noted above, the -P option may be used to supply a password on the
    command line, but at a cost in security.  The  preferred decryption
    method is simply to extract normally; if a zipfile member is encrypted,
    unzip will prompt for the password without echoing what is typed.
    unzip continues  to use the same password as long as it appears to be
    valid, by testing a 12-byte header on each file.  The correct password
    will always check out  against the header, but there is a 1-in-256
    chance that an incorrect password will as well. (This is a security
    feature of the  PKWARE  zipfile format; it helps prevent brute-force
    attacks that might otherwise gain a large speed advantage by testing
    only the header.) In the case that an incorrect password is given but
    it passes the header test anyway, either an incorrect CRC will be gen-
    erated for the  extracted data or else unzip will fail during the
    extraction because the ``decrypted'' bytes do not constitute a  valid
    compressed data stream.

    If the first password fails the header check on some file, unzip will
    prompt for another password, and so on until all files are extracted.
    If a password is not known, entering a null password (that is, just a
    carriage return or ``Enter'') is taken as a signal to skip all further
    prompting. Only unencrypted files in the archive(s) will thereafter be
    extracted. (In fact, that's not quite true; older versions of zip(1L)
    and zipcloak(1L) allowed null passwords, so unzip checks each encrypted
    file to see if the null password works. This may result in ``false
    positives'' and extraction errors, as noted above.)

    Archives  encrypted with 8-bit passwords (for example, passwords with
    accented European characters) may not be portable across systems and/or
    other archivers. This problem stems from the use of multiple encoding
    methods for such characters, including Latin-1 (ISO 8859-1) and OEM
    code page 850.  DOS PKZIP 2.04g uses the OEM code page; Windows PKZIP
    2.50 uses Latin-1 (and is therefore incompatible with DOS PKZIP); Info-
    ZIP uses the OEM code page on DOS, OS/2 and Win3.x ports but Latin-1
    everywhere else; and Nico Mak's WinZip 6.x does not allow 8-bit  pass-
    words at all. UnZip 5.3 (or newer) attempts to use the default charac-
    ter set first (e.g., Latin-1), followed by the alternate one (e.g., OEM
    code page) to test passwords.  On EBCDIC systems, if both of these
    fail, EBCDIC encoding will be tested as a last resort. (EBCDIC is not
    tested on non-EBCDIC systems, because there are no known archivers that
    encrypt using EBCDIC encoding.) ISO character encodings other than
    Latin-1 are not supported.

EXAMPLES
    To use unzip to extract all members of the archive letters.zip into the
    current directory and subdirectories below it, creating any subdirecto-
    ries as necessary:

   unzip letters

    To extract all members of letters.zip into the current directory only:

   unzip -j letters

    To test letters.zip, printing only a summary message indicating whether
    the archive is OK or not:

   unzip -tq letters

    To test all zipfiles in the current directory, printing only the sum-
    maries:

   unzip -tq \*.zip

    (The backslash before the asterisk is only  required if the shell
    expands wildcards, as in Unix; double quotes could have been used
    instead, as in the source examples below.) To extract to standard out-
    put all members of letters.zip whose names end in .tex, auto-converting
    to the local end-of-line convention and piping the output into more(1):

   unzip -ca letters \*.tex | more

    To extract the binary file paper1.dvi to standard output and pipe it to
    a printing program:

   unzip -p articles paper1.dvi | dvips

    To extract all  FORTRAN and C source files--*.f, *.c, *.h, and Make-
    file--into the /tmp directory:

   unzip source.zip "*.[fch]" Makefile -d /tmp

    (the double quotes are necessary only in Unix and only if globbing is
    turned on).  To extract all FORTRAN and C source files, regardless of
    case (e.g., both *.c and *.C, and any makefile, Makefile, MAKEFILE or
    similar):

   unzip -C source.zip "*.[fch]" makefile -d /tmp

    To extract any such files but convert any uppercase MS-DOS or VMS names
    to lowercase and convert the line-endings of all of the files to the
    local standard (without respect to any files that might be marked
    ``binary''):

   unzip -aaCL source.zip "*.[fch]" makefile -d /tmp

    To extract only newer versions of the files already in the current
    directory, without querying (NOTE:  be careful of unzipping in one
    timezone a zipfile created in another--ZIP archives other than  those
    created by Zip  2.1 or later contain no timezone information, and a
    ``newer'' file from an eastern timezone may, in fact, be older):

   unzip -fo sources

    To extract newer versions of the files already in the current directory
    and to create any files not already there (same caveat as previous
    example):

   unzip -uo sources

    To display a diagnostic screen showing which unzip and zipinfo options
    are stored in environment variables, whether decryption support was
    compiled in, the compiler with which unzip was compiled, etc.:

   unzip -v

    In the last five examples, assume that UNZIP or UNZIP_OPTS is set to
    -q. To do a singly quiet listing:

   unzip -l file.zip

    To do a doubly quiet listing:

   unzip -ql file.zip

    (Note that the ``.zip'' is generally not necessary.) To do a standard
    listing:

   unzip --ql file.zip
    or
   unzip -l-q file.zip
    or
   unzip -l--q file.zip
    (Extra minuses in options don't hurt.)

TIPS
    The current maintainer, being a lazy sort, finds it very useful to
    define a pair of aliases: tt for ``unzip -tq'' and ii for ``unzip -Z''
    (or ``zipinfo''). One may then simply type ``tt zipfile'' to test an
    archive,  something that is worth making a habit of doing. With luck
    unzip will report ``No errors detected in compressed data of zip-
    file.zip,'' after which one may breathe a sigh of relief.

    The maintainer also finds it useful to set the UNZIP environment vari-
    able to ``-aL'' and is tempted to add ``-C'' as well.  His ZIPINFO
    variable is set to ``-z''.

DIAGNOSTICS
    The exit status (or error level) approximates the exit codes defined by
    PKWARE and takes on the following values, except under VMS:

    0    normal; no errors or warnings detected.

    1    one or more warning errors were encountered, but process-
     ing completed successfully anyway. This includes zip-
     files where one or more files was skipped due to unsup-
     ported compression method or encryption with an unknown
     password.

    2    a generic error in the zipfile format was detected. Pro-
     cessing may have completed successfully anyway; some bro-
     ken zipfiles created by other archivers have simple work-
     arounds.

    3    a severe error in the zipfile format was detected. Pro-
     cessing probably failed immediately.

    4    unzip was unable to allocate memory for  one or more
     buffers during program initialization.

    5    unzip was unable to allocate memory or unable to obtain a
     tty to read the decryption password(s).

    6    unzip was unable to allocate memory during  decompression
     to disk.

    7    unzip was  unable  to allocate memory during in-memory
     decompression.

    8    [currently not used]

    9    the specified zipfiles were not found.

    10   invalid options were specified on the command line.

    11   no matching files were found.

    50   the disk is (or was) full during extraction.

    51   the end of the ZIP archive was encountered prematurely.

    80   the user aborted unzip prematurely with control-C (or
     similar)

    81   testing or extraction of one or more files failed due to
     unsupported compression methods or unsupported decryp-
     tion.

    82   no  files were found due to bad decryption password(s).
     (If even one file is successfully processed, however, the
     exit status is 1.)

    VMS interprets standard Unix (or PC) return values as other, scarier-
    looking things, so unzip instead maps them into VMS-style status codes.
    The current mapping is as follows:  1 (success) for normal exit,
    0x7fff0001  for  warning  errors,  and  (0x7fff000?  +  16*nor-
    mal_unzip_exit_status) for all other errors, where the `?' is 2 (error)
    for unzip values 2, 9-11 and 80-82, and 4 (fatal error) for the remain-
    ing ones (3-8, 50, 51).  In addition, there is a compilation option to
    expand upon this behavior: defining RETURN_CODES results in a human-
    readable explanation of what the error status means.

BUGS
    Multi-part archives are not yet supported, except in conjunction with
    zip. (All parts must be concatenated together in order, and then ``zip
    -F'' must be performed on the concatenated archive in order to ``fix''
    it.) This will definitely be corrected in the next major release.

    Archives read from standard input are not yet supported, except with
    funzip (and then only  the first member of  the archive can be
    extracted).

    Archives encrypted with 8-bit passwords (e.g., passwords with accented
    European  characters) may not be portable across systems and/or other
    archivers. See the discussion in DECRYPTION above.

    unzip'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. unzip 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 addition,
    unzip should detect the true screen geometry on all systems.

    Dates, times and permissions of stored directories are  not restored
    except under Unix.

    [MS-DOS]  When extracting or testing files from an archive on a defec-
    tive floppy diskette, if the ``Fail'' option is chosen from  DOS's
    ``Abort,  Retry,  Fail?'' message, older versions of unzip may hang the
    system, requiring a reboot. This problem appears to be fixed, but con-
    trol-C (or control-Break) can still be used to terminate unzip.

    Under DEC Ultrix, unzip would sometimes fail on long zipfiles (bad CRC,
    not always reproducible). This was apparently due either to a hardware
    bug (cache memory) or  an operating system bug (improper handling of
    page faults?). Since Ultrix has been abandoned in favor of Digital
    Unix (OSF/1), this may not be an issue anymore.

    [Unix] Unix special files such as FIFO buffers (named pipes), block
    devices and character devices are not restored even if they are somehow
    represented in the zipfile, nor are hard-linked files relinked.  Basi-
    cally the only file types restored by unzip are regular files, directo-
    ries and symbolic (soft) links.

    [OS/2] Extended attributes for existing directories are only updated if
    the -o (``overwrite all'') option is given. This is a limitation of
    the operating system; because  directories only have a creation time
    associated with them, unzip has no way to determine whether the stored
    attributes are newer or older than those on disk. In practice this may
    mean a two-pass approach is required: first unpack the  archive nor-
    mally (with or without freshening/updating existing files), then over-
    write just the directory entries (e.g., ``unzip -o foo */'').

    [VMS] When extracting to another directory, only the [.foo] syntax is
    accepted  for the -d option; the simple Unix foo syntax is silently
    ignored (as is the less common VMS foo.dir syntax).

    [VMS] When the file being extracted already exists, unzip's query only
    allows skipping, overwriting or renaming; there should additionally be
    a choice for creating a new version of the file.  In fact, the ``over-
    write'' choice does create a new version; the old version is not over-
    written or deleted.

SEE ALSO
   funzip(1L),zip(1L), zipcloak(1L),zipgrep(1L),zipinfo(1L),  zipnote(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/ .

AUTHORS
    The primary Info-ZIP authors (current semi-active members of the Zip-
    Bugs workgroup) are: Greg ``Cave Newt'' Roelofs (UnZip); Onno van der
    Linden (Zip); Jean-loup Gailly (compression); Mark Adler (decompres-
    sion, fUnZip); Christian Spieler (UnZip maintance coordination, VMS,
    MS-DOS, Windows 95, NT, shared code, general Zip and UnZip integration
    and optimization); Mike White (Windows GUI, Windows DLLs); Kai Uwe Rom-
    mel (OS/2); Paul Kienitz (Amiga, Windows 95); Chris Herborth (BeOS,
    QNX, Atari); Jonathan Hudson (SMS/QDOS); Sergio Monesi (Acorn RISC OS);
    Harald Denker (Atari, MVS); John Bush (Solaris, Amiga); Hunter Goatley
    (VMS); Steve Salisbury (Windows 95, NT); Steve Miller (Windows CE GUI),
    Johnny Lee (MS-DOS, Windows 95, NT); and Dave Smith (Tandem NSK). The
    author of the original unzip code upon which Info-ZIP's was based is
    Samuel H. Smith; Carl  Mascott did the first Unix port; and David P.
    Kirschbaum organized and led Info-ZIP in  its early days with  Keith
    Petersen  hosting the original mailing list at WSMR-SimTel20. The full
    list of contributors to UnZip has grown quite large; please refer to
    the CONTRIBS file in the UnZip source distribution for a relatively
    complete version.

VERSIONS
    v1.2  15 Mar 89  Samuel H. Smith
    v2.0  9 Sep 89  Samuel H. Smith
    v2.x  fall 1989  many Usenet contributors
    v3.0  1 May 90  Info-ZIP (DPK, consolidator)
    v3.1  15 Aug 90  Info-ZIP (DPK, consolidator)
    v4.0  1 Dec 90  Info-ZIP (GRR, maintainer)
    v4.1  12 May 91  Info-ZIP
    v4.2  20 Mar 92  Info-ZIP (Zip-Bugs subgroup, GRR)
    v5.0  21 Aug 92  Info-ZIP (Zip-Bugs subgroup, GRR)
    v5.01 15 Jan 93  Info-ZIP (Zip-Bugs subgroup, GRR)
    v5.1  7 Feb 94  Info-ZIP (Zip-Bugs subgroup, GRR)
    v5.11  2 Aug 94  Info-ZIP (Zip-Bugs subgroup, GRR)
    v5.12 28 Aug 94  Info-ZIP (Zip-Bugs subgroup, GRR)
    v5.2  30 Apr 96  Info-ZIP (Zip-Bugs subgroup, GRR)
    v5.3  22 Apr 97  Info-ZIP (Zip-Bugs subgroup, GRR)
    v5.31 31 May 97  Info-ZIP (Zip-Bugs subgroup, GRR)
    v5.32  3 Nov 97  Info-ZIP (Zip-Bugs subgroup, GRR)
    v5.4  28 Nov 98  Info-ZIP (Zip-Bugs subgroup, SPC)
    v5.41 16 Apr 00  Info-ZIP (Zip-Bugs subgroup, SPC)
    v5.42 14 Jan 01  Info-ZIP (Zip-Bugs subgroup, SPC)
    v5.5  17 Feb 02  Info-ZIP (Zip-Bugs subgroup, SPC)