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)
