man/cat1/unzip.1.txt

UNZIP(1L) UNZIP(1L)
 
 
 
 
 
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 ar-
       chive, commonly found on MS-DOS systems. The default
       behavior (with no options) is to extract into the cur-
       rent directory (and subdirectories below it) all files
       from the specified ZIP archive. A companion program,
       zip(1L), creates ZIP archives; both programs are compat-
       ible with archives created 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 specifi-
              cation is a wildcard, each matching file is pro-
              cessed 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 end-
                     ing 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 other-
              wise 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 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 pro-
              cessed, separated by spaces. (VMS versions com-
              piled with VMSCLI defined must delimit files with
              commas instead. See -v in OPTIONS below.) Regu-
              lar 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 processing. Since wildcard charac-
              ters 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 subdirec-
              tories. 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 directory; 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 normal
              options), immediately after the zipfile specifi-
              cation, 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
              directory.
 
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 appro-
              priate 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 similar 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 operating systems, the TZ (timezone) envi-
              ronment variable must be set correctly in order
              for -f and -u to work properly (under Unix the
              variable is usually set automatically). The rea-
              sons for this are somewhat subtle but have to do
              with the differences between DOS-format file
              times (always local time) and Unix-format 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 Day-
              light 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
              displayed. 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 ver-
              bosely, adding to the basic -l info the compres-
              sion method, compressed size, compression 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 addi-
              tion 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 ver-
              sion used, and the compilation date; any special
              compilation options that might affect the pro-
              gram's operation (see also DECRYPTION below); and
              any options stored in environment variables 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 characters 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; Mac-
              intoshes 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 iden-
              tification 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 con-
              versions). 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 standard out-
              put (-c or -p option in effect), the default con-
              version 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 loca-
              tions.
 
       -C match filenames case-insensitively. unzip's phi-
              losophy 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-sensi-
              tively. That is, specifying ``makefile'' on the
              command line will only match ``makefile'' in the
              archive, not ``Makefile'' or ``MAKEFILE'' (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 sen-
              sitive 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 commas, and only if compiled with
              ACORN_FTYPE_NFS defined] translate 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 file-
              name 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 Mac-
              intosh 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 sys-
              tem. (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-sensitive one such as
              under Unix. By default unzip lists and extracts
              such filenames exactly as they're stored (except-
              ing truncation, conversion of unsupported charac-
              ters, 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 comments.
 
       -o overwrite existing files without prompting. This
              is a dangerous option, so use it with care. (It
              is often used with -f, however, 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 pos-
              sible, 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 meth-
              ods, 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 spa-
              ces to underscores can eliminate the awkwardness
              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 num-
              bers are stripped, but this option allows them to
              be retained. (On file systems that limit file-
              names 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 control lists
              (ACLs) under certain network-enabled versions of
              OS/2 (Warp Server with IBM LAN Server/Requester
              3.0 to 5.0; Warp Connect with IBM Peer 1.0), or
              security ACLs under Windows NT. In most cases
              this will require special system privileges, and
              doubling the option (-XX) under NT instructs
              unzip to use privileges 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 anyway.]
 
       -$ [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 sup-
              plied 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. This option
              does not enable writing explicitly to the root
              directory (``/''). To achieve this, it is neces-
              sary to set the extraction target folder to root
              (e.g. -d / ). However, when the -: option is
              specified, it is still possible to implicitly
              write to the root directory by specifiying enough
              ``../'' path components within the zip file. Use
              this option with extreme caution.
 
 
ENVIRONMENT OPTIONS
       unzip's default behavior may be modified via options
       placed in an environment 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 possible,
       only reporting errors, one would use one of the follow-
       ing commands:
 
         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 con-
       fusing, 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 zip-
       file 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 timezone in order for the -f and -u to operate
       correctly. See the description of -f above for details.
       This variable may also be necessary in order for time-
       stamps 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 soft-
       ware, but due to United States export restrictions,
       de-/encryption support might be disabled in your com-
       piled binary. However, since spring 2000, US export
       restrictions have been liberated, and our source ar-
       chives 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 decryp-
       tion. 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 compi-
       lation 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
       generated 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 car-
       riage 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 every-
       where else; and Nico Mak's WinZip 6.x does not allow
       8-bit passwords at all. UnZip 5.3 (or newer) attempts
       to use the default character 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 let-
       ters.zip into the current directory and subdirectories
       below it, creating any subdirectories 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 summaries:
 
           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 output 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 Makefile--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-end-
       ings 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 care-
       ful 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 com-
       pressed data of zipfile.zip,'' after which one may
       breathe a sigh of relief.
 
       The maintainer also finds it useful to set the UNZIP
       environment variable 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 val-
       ues, except under VMS:
 
              0 normal; no errors or warnings detected.
 
              1 one or more warning errors were encoun-
                     tered, but processing completed success-
                     fully anyway. This includes zipfiles
                     where one or more files was skipped due to
                     unsupported compression method or encryp-
                     tion with an unknown password.
 
              2 a generic error in the zipfile format was
                     detected. Processing may have completed
                     successfully anyway; some broken zipfiles
                     created by other archivers have simple
                     work-arounds.
 
              3 a severe error in the zipfile format was
                     detected. Processing probably failed
                     immediately.
 
              4 unzip was unable to allocate memory for
                     one or more buffers during program ini-
                     tialization.
 
              5 unzip was unable to allocate memory or
                     unable to obtain a tty to read the decryp-
                     tion 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 com-
                     mand line.
 
              11 no matching files were found.
 
              50 the disk is (or was) full during extrac-
                     tion.
 
              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 decryption.
 
              82 no files were found due to bad decryption
                     password(s). (If even one file is suc-
                     cessfully 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 remaining 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 discus-
       sion in DECRYPTION above.
 
       unzip's -M (``more'') option tries to take into account
       automatic wrapping of long lines. However, the code may
       fail to detect the correct wrapping locations. First,
       TAB characters (and similar control sequences) are not
       taken into account, they are handled as ordinary print-
       able characters. Second, depending on the actual system
       / OS port, unzip may not detect the true screen geometry
       but rather rely on "commonly used" default dimensions.
       The correct handling of tabs would require the implemen-
       tation of a query for the actual tabulator setup on the
       output console.
 
       Dates, times and permissions of stored directories are
       not restored except under Unix. (On Windows NT and suc-
       cessors, timestamps are now restored.)
 
       [MS-DOS] When extracting or testing files from an ar-
       chive on a defective floppy diskette, if the ``Fail''
       option is chosen from DOS's ``Abort, Retry, Fail?'' mes-
       sage, older versions of unzip may hang the system,
       requiring a reboot. This problem appears to be fixed,
       but control-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. Basically
       the only file types restored by unzip are regular files,
       directories 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 normally (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 com-
       mon 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 cre-
       ating a new version of the file. In fact, the ``over-
       write'' choice does create a new version; the old ver-
       sion is not overwritten or deleted.
 
SEE ALSO
       funzip(1L), zip(1L), zipcloak(1L), zipgrep(1L), zip-
       info(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 mem-
       bers of the Zip-Bugs workgroup) are: Onno van der Lin-
       den (Zip); Christian Spieler (UnZip maintenance coordi-
       nation, VMS, MS-DOS, Win32, shared code, general Zip and
       UnZip integration and optimization); Mike White (Windows
       GUI, Windows DLLs); Kai Uwe Rommel (OS/2); Paul Kienitz
       (Amiga, Win32); 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 (Win32);
       Steve Miller (Windows CE GUI), Johnny Lee (MS-DOS,
       Win32); and Dave Smith (Tandem NSK).
 
       The following people were former members of the Info-ZIP
       development group and provided major contributions to
       key parts of the current code: Greg ``Cave Newt''
       Roelofs (UnZip, unshrink decompression); Jean-loup
       Gailly (deflate compression); Mark Adler (inflate decom-
       pression, fUnZip).
 
       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 host-
       ing 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)
       v5.51 22 May 04 Info-ZIP (Zip-Bugs subgroup, SPC)
 
 
 
Info-ZIP 22 May 2004 (v5.51) UNZIP(1L)