home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / tools / unz512x3.exe / unzip.doc < prev    next >
Text File  |  1994-08-25  |  34KB  |  705 lines

  1.  
  2. UNZIP(1L)         MISC. REFERENCE MANUAL PAGES          UNZIP(1L)
  3.  
  4. NAME
  5.      unzip - list, test and extract compressed  files  in  a  ZIP
  6.      archive
  7.  
  8. SYNOPSIS
  9.      unzip [-Z] [-cflptuvz[abjnoqsCLV$]] file[.zip] [file(s) ...]
  10.      [-x xfile(s) ...] [-d exdir]
  11.  
  12. DESCRIPTION
  13.      unzip will list, test, or extract files from a ZIP  archive,
  14.      commonly  found  on  MS-DOS  systems.   The default behavior
  15.      (with no options) is to extract into the  current  directory
  16.      (and  subdirectories  below it) all files from the specified
  17.      ZIP archive.  A  companion  program,  zip(1L),  creates  ZIP
  18.      archives; both programs are compatible with archives created
  19.      by PKWARE's PKZIP and PKUNZIP for MS-DOS, but in many  cases
  20.      the program options or default behaviors differ.
  21.  
  22. ARGUMENTS
  23.      file[.zip]
  24.           Path of the ZIP archive(s).  If the file  specification
  25.           is  a  wildcard,  each matching file is processed in an
  26.           order determined by the operating system (or file  sys-
  27.           tem).   Only  the  filename can be a wildcard; the path
  28.           itself cannot.  Wildcard  expressions  are  similar  to
  29.           Unix egrep(1) (regular) expressions and may contain:
  30.  
  31.           *    matches a sequence of 0 or more characters
  32.  
  33.           ?    matches exactly 1 character
  34.  
  35.           [...]
  36.                matches any  single  character  found  inside  the
  37.                brackets;  ranges  are  specified  by  a beginning
  38.                character, a hyphen, and an ending character.   If
  39.                an  exclamation point or a caret (`!' or `^') fol-
  40.                lows the left bracket, then the range  of  charac-
  41.                ters within the brackets is complemented (that is,
  42.                anything except the characters inside the brackets
  43.                is considered a match).
  44.  
  45.           (Be sure to quote any character which  might  otherwise
  46.           be  interpreted  or  modified  by the operating system,
  47.           particularly under Unix and VMS.)  If  no  matches  are
  48.           found,  the  specification  is  assumed to be a literal
  49.           filename; and if that also fails, the  suffix  .zip  is
  50.           appended.  Note that self-extracting ZIP files are sup-
  51.           ported, as with any other ZIP archive; just specify the
  52.           .exe suffix (if any) explicitly.
  53.  
  54.      [file(s)]
  55.           An optional list of archive members  to  be  processed,
  56.  
  57. Info-ZIP         Last change: 28 Aug 94 (v5.12)                 1
  58.  
  59. UNZIP(1L)         MISC. REFERENCE MANUAL PAGES          UNZIP(1L)
  60.  
  61.           separated  by  spaces.   (VMS  versions  compiled  with
  62.           VMSCLI defined must delimit files with commas  instead.
  63.           See  -v  in  OPTIONS below.) Regular expressions (wild-
  64.           cards) may be  used  to  match  multiple  members;  see
  65.           above.   Again, be sure to quote expressions that would
  66.           otherwise be expanded or modified by the operating sys-
  67.           tem.
  68.  
  69.      [-x xfile(s)]
  70.           An optional list of archive members to be excluded from
  71.           processing.   Since wildcard characters match directory
  72.           separators (`/'), this option may be  used  to  exclude
  73.           any  files  which  are in subdirectories.  For example,
  74.           ``unzip foo *.[ch] -x */*'' would extract all C  source
  75.           files  in the main directory, but none in any subdirec-
  76.           tories.  Without the -x option, all C source  files  in
  77.           all directories within the zipfile would be extracted.
  78.  
  79.      [-d exdir]
  80.           An optional directory to which to  extract  files.   By
  81.           default,  all files and subdirectories are recreated in
  82.           the current directory; the -d option allows  extraction
  83.           in an arbitrary directory (always assuming one has per-
  84.           mission to write to the directory).  This  option  need
  85.           not  appear  at the end of the command line; it is also
  86.           accepted immediately after the  zipfile  specification,
  87.           or  between  the file(s) and the -x option.  The option
  88.           and directory may be  concatenated  without  any  white
  89.           space between them, but note that this may cause normal
  90.           shell  behavior  to  be  suppressed.   In   particular,
  91.           ``-d ~''  (tilde) is expanded by Unix C shells into the
  92.           name of the  user's  home  directory,  but  ``-d~''  is
  93.           treated  as a literal subdirectory ``~'' of the current
  94.           directory.
  95.  
  96. OPTIONS
  97.      Note that, in order to support obsolescent hardware, unzip's
  98.      usage  screen is limited to 22 or 23 lines and should there-
  99.      fore be considered a reminder  of  the  basic  unzip  syntax
  100.      rather than an exhaustive list of all possible flags.
  101.  
  102.      -Z   zipinfo(1L) mode.  If the first option on  the  command
  103.           line  is  -Z,  the  remaining  options  are taken to be
  104.           zipinfo(1L) options.  See the appropriate  manual  page
  105.           for a description of these options.
  106.  
  107.      -c   extract files to stdout/screen (``CRT'').  This  option
  108.           is  similar  to  the  -p option except that the name of
  109.           each file is printed as it is extracted, the -a  option
  110.           is  allowed,  and  ASCII-EBCDIC conversion is automati-
  111.           cally performed if appropriate.   This  option  is  not
  112.           listed in the unzip usage screen.
  113.  
  114. Info-ZIP         Last change: 28 Aug 94 (v5.12)                 2
  115.  
  116. UNZIP(1L)         MISC. REFERENCE MANUAL PAGES          UNZIP(1L)
  117.  
  118.      -f   freshen existing files, i.e., extract only those  files
  119.           which  already  exist  on disk and which are newer than
  120.           the disk  copies.   By  default  unzip  queries  before
  121.           overwriting,  but the -o option may be used to suppress
  122.           the queries.  Note that under many  operating  systems,
  123.           the  TZ  (timezone)  environment  variable  must be set
  124.           correctly in order for  -f  and  -u  to  work  properly
  125.           (under Unix the variable is usually set automatically).
  126.           The reasons for this are somewhat subtle but have to do
  127.           with  the  differences  between  DOS-format  file times
  128.           (always local time) and Unix-format  times  (always  in
  129.           GMT)  and  the necessity to compare the two.  A typical
  130.           TZ value is ``PST8PDT'' (US Pacific time with automatic
  131.           adjustment   for  Daylight  Savings  Time  or  ``summer
  132.           time'').
  133.  
  134.      -l   list  archive  files  (short   format).    The   names,
  135.           uncompressed  file  sizes  and  modification  dates and
  136.           times of the specified files are  printed,  along  with
  137.           totals  for all files specified.  In addition, the zip-
  138.           file comment and individual file comments (if any)  are
  139.           displayed.   If  a file was archived from a single-case
  140.           file system (for example, the old MS-DOS FAT file  sys-
  141.           tem)  and the -L option was given, the filename is con-
  142.           verted to lowercase and is prefixed with a caret (^).
  143.  
  144.      -p   extract files to pipe (stdout).  Nothing but  the  file
  145.           data  is  sent  to  stdout,  and  the  files are always
  146.           extracted in binary format, just as they are stored (no
  147.           conversions).
  148.  
  149.      -t   test archive files.  This option extracts  each  speci-
  150.           fied file in memory and compares the CRC (cyclic redun-
  151.           dancy check, an enhanced checksum) of the expanded file
  152.           with the original file's stored CRC value.
  153.  
  154.      -u   update existing files and create new  ones  if  needed.
  155.           This  option  performs  the  same  function  as  the -f
  156.           option, extracting (with query) files which  are  newer
  157.           than  those with the same name on disk, and in addition
  158.           it extracts those files which do not already  exist  on
  159.           disk.   See  -f  above  for  information on setting the
  160.           timezone properly.
  161.  
  162.      -v   be verbose or  print  diagnostic  version  info.   This
  163.           option  has  evolved  and now behaves as both an option
  164.           and a modifier.  As an  option  it  has  two  purposes:
  165.           when  a  zipfile is specified with no other options, -v
  166.           lists archive files verbosely, adding to  the  -l  info
  167.           the  compression  method,  compressed size, compression
  168.           ratio and 32-bit CRC.  When  no  zipfile  is  specified
  169.           (that is, the complete command is simply ``unzip -v''),
  170.  
  171. Info-ZIP         Last change: 28 Aug 94 (v5.12)                 3
  172.  
  173. UNZIP(1L)         MISC. REFERENCE MANUAL PAGES          UNZIP(1L)
  174.  
  175.           a diagnostic screen is printed.   In  addition  to  the
  176.           normal  header  with  release  date  and version, unzip
  177.           lists the home Info-ZIP ftp site and where  to  find  a
  178.           list of other ftp and non-ftp sites; the target operat-
  179.           ing system for which it was compiled, as well as  (pos-
  180.           sibly)  the hardware on which it was compiled, the com-
  181.           piler and version used, and the compilation  date;  any
  182.           special  compilation  options  which  might  affect the
  183.           program's operation (see also  DECRYPTION  below);  and
  184.           any options stored in environment variables which might
  185.           do the same (see  ENVIRONMENT  OPTIONS  below).   As  a
  186.           modifier  it  works  in  conjunction with other options
  187.           (e.g., -t) to produce more verbose or debugging output;
  188.           this is not yet fully implemented but will be in future
  189.           releases.
  190.  
  191.      -z   display only the archive comment.
  192.  
  193. MODIFIERS
  194.      -a   convert text files.  Ordinarily all files are extracted
  195.           exactly  as they are stored (as ``binary'' files).  The
  196.           -a option causes files identified by zip as text  files
  197.           (those  with  the `t' label in zipinfo listings, rather
  198.           than `b') to be automatically extracted as  such,  con-
  199.           verting  line  endings,  end-of-file characters and the
  200.           character set itself as necessary.  (For example,  Unix
  201.           files  use  line  feeds (LFs) for end-of-line (EOL) and
  202.           have no end-of-file (EOF) marker; Macintoshes use  car-
  203.           riage  returns  (CRs)  for  EOLs; and most PC operating
  204.           systems use CR+LF for EOLs and control-Z for  EOF.   In
  205.           addition, IBM mainframes and the Michigan Terminal Sys-
  206.           tem use EBCDIC rather than the more common ASCII  char-
  207.           acter  set,  and  NT supports Unicode.) Note that zip's
  208.           identification of text files is by  no  means  perfect;
  209.           some  ``text''  files  may  actually be binary and vice
  210.           versa.    unzip   therefore   prints   ``[text]''    or
  211.           ``[binary]''  as  a  visual  check  for  each  file  it
  212.           extracts when using the  -a  option.   The  -aa  option
  213.           forces all files to be extracted as text, regardless of
  214.           the supposed file type.
  215.  
  216.      -b   treat all files as binary (no text conversions).   This
  217.           is a shortcut for ---a.
  218.  
  219.      -C   match filenames case-insensitively.  unzip's philosophy
  220.           is ``you get what you ask for'' (this is also responsi-
  221.           ble for the -L/-U  change;  see  the  relevant  options
  222.           below).   Because  some  filesystems  are  fully  case-
  223.           sensitive (notably those under the Unix operating  sys-
  224.           tem) and because both ZIP archives and unzip itself are
  225.           portable across platforms, unzip's default behavior  is
  226.           to  match  both  wildcard  and  literal filenames case-
  227.  
  228. Info-ZIP         Last change: 28 Aug 94 (v5.12)                 4
  229.  
  230. UNZIP(1L)         MISC. REFERENCE MANUAL PAGES          UNZIP(1L)
  231.  
  232.           sensitively.  That is, specifying ``makefile''  on  the
  233.           command  line  will  only  match  ``makefile''  in  the
  234.           archive, not ``Makefile'' or  ``MAKEFILE''  (and  simi-
  235.           larly  for  wildcard  specifications).  Since this does
  236.           not  correspond  to  the   behavior   of   many   other
  237.           operating/file  systems  (for  example, OS/2 HPFS which
  238.           preserves mixed case but is not sensitive to  it),  the
  239.           -C  option may be used to force all filename matches to
  240.           be case-insensitive.  In the example above,  all  three
  241.           files  would  then match ``makefile'' (or ``make*'', or
  242.           similar).  The -C option affects files in both the nor-
  243.           mal file list and the excluded-file list (xlist).
  244.  
  245.      -j   junk paths.  The archive's directory structure  is  not
  246.           recreated;  all  files  are deposited in the extraction
  247.           directory (by default, the current one).
  248.  
  249.      -L   convert to lowercase any  filename  originating  on  an
  250.           uppercase-only  operating  system or filesystem.  (This
  251.           was unzip's default behavior in releases prior to 5.11;
  252.           the  new  default  behavior  is  identical  to  the old
  253.           behavior with the -U option, which is now obsolete  and
  254.           will be removed in a future release.)  Depending on the
  255.           archiver, files archived under single-case  filesystems
  256.           (VMS,  old  MS-DOS  FAT,  etc.)  may  be stored as all-
  257.           uppercase names; this can be ugly or inconvenient  when
  258.           extracting to a case-preserving filesystem such as OS/2
  259.           HPFS or a case-sensitive one such as  under  Unix.   By
  260.           default unzip lists and extracts such filenames exactly
  261.           as they're stored (excepting truncation, conversion  of
  262.           unsupported  characters,  etc.); this option causes the
  263.           names of all files from certain systems to be converted
  264.           to lowercase.
  265.  
  266.      -n   never overwrite existing  files.   If  a  file  already
  267.           exists,  skip  the  extraction  of  that  file  without
  268.           prompting.  By default unzip queries before  extracting
  269.           any  file  which already exists; the user may choose to
  270.           overwrite only the current file, overwrite  all  files,
  271.           skip extraction of the current file, skip extraction of
  272.           all existing files, or rename the current file.
  273.  
  274.      -o   overwrite existing files without prompting.  This is  a
  275.           dangerous  option,  so  use it with care.  (It is often
  276.           used with -f, however.)
  277.  
  278.      -q   perform operations quietly (-qq = even quieter).  Ordi-
  279.           narily  unzip  prints  the  names  of  the  files  it's
  280.           extracting or testing, the extraction methods, any file
  281.           or zipfile comments which may be stored in the archive,
  282.           and possibly a summary when finished with each archive.
  283.           The  -q[q] options suppress the printing of some or all
  284.  
  285. Info-ZIP         Last change: 28 Aug 94 (v5.12)                 5
  286.  
  287. UNZIP(1L)         MISC. REFERENCE MANUAL PAGES          UNZIP(1L)
  288.  
  289.           of these messages.
  290.  
  291.      -s   [OS/2, NT,  MS-DOS]  convert  spaces  in  filenames  to
  292.           underscores.   Since  all  PC  operating  systems allow
  293.           spaces  in  filenames,  unzip   by   default   extracts
  294.           filenames  with  spaces intact (e.g., ``EA DATA. SF'').
  295.           This can be awkward, however, since MS-DOS in  particu-
  296.           lar  does  not  gracefully support spaces in filenames.
  297.           Conversion of spaces to underscores can  eliminate  the
  298.           awkwardness in some cases.
  299.  
  300.      -U   (obsolete; to be removed in  a  future  release)  leave
  301.           filenames  uppercase if created under MS-DOS, VMS, etc.
  302.           See -L above.
  303.  
  304.      -V   retain (VMS) file version numbers.  VMS  files  can  be
  305.           stored   with   a   version   number,   in  the  format
  306.           file.ext;##.  By default the  ``;##''  version  numbers
  307.           are  stripped,  but  this  option  allows  them  to  be
  308.           retained.  (On filesystems  which  limit  filenames  to
  309.           particularly  short lengths, the version numbers may be
  310.           truncated or stripped regardless of this option.)
  311.  
  312.      -X   [VMS] restore owner/protection info (may require system
  313.           privileges).    Ordinary  file  attributes  are  always
  314.           restored, but this option allows UICs to be restored as
  315.           well.   [The  next  version  of unzip will support Unix
  316.           UID/GID info as well, and possibly NT permissions.]
  317.  
  318.      -$   [MS-DOS, OS/2, NT, Amiga] restore the volume  label  if
  319.           the  extraction medium is removable (e.g., a diskette).
  320.           Doubling the option  (-$$)  allows  fixed  media  (hard
  321.           disks)  to  be  labelled  as  well.  By default, volume
  322.           labels are ignored.
  323.  
  324. ENVIRONMENT OPTIONS
  325.      unzip's default behavior may be modified via options  placed
  326.      in  an  environment  variable.   This  can  be done with any
  327.      option, but it is probably most useful with the -a, -L,  -C,
  328.      -q, -o, or -n modifiers:  make unzip auto-convert text files
  329.      by default, make it convert filenames from uppercase systems
  330.      to  lowercase,  make it match names case-insensitively, make
  331.      it quieter, or make it always overwrite or  never  overwrite
  332.      files  as  it extracts them.  For example, to make unzip act
  333.      as quietly as possible, only reporting errors, one would use
  334.      one of the following commands:
  335.  
  336.          UNZIP=-qq; export UNZIP    Unix Bourne shell
  337.          setenv UNZIP -qq           Unix C shell
  338.          set UNZIP=-qq              OS/2 or MS-DOS
  339.          define UNZIP_OPTS "-qq"    VMS (quotes for lowercase)
  340.  
  341. Info-ZIP         Last change: 28 Aug 94 (v5.12)                 6
  342.  
  343. UNZIP(1L)         MISC. REFERENCE MANUAL PAGES          UNZIP(1L)
  344.  
  345.      Environment options are, in effect, considered  to  be  just
  346.      like  any  other  command-line options, except that they are
  347.      effectively the first options on the command line.  To over-
  348.      ride  an  environment option, one may use the ``minus opera-
  349.      tor'' to remove it.  For instance, to override  one  of  the
  350.      quiet-flags in the example above, use the command
  351.  
  352.          unzip --q[other options] zipfile
  353.  
  354.      The first hyphen is the normal  switch  character,  and  the
  355.      second  is  a  minus sign, acting on the q option.  Thus the
  356.      effect here is to cancel one quantum of quietness.  To  can-
  357.      cel both quiet flags, two (or more) minuses may be used:
  358.  
  359.          unzip -t--q zipfile
  360.          unzip ---qt zipfile
  361.  
  362.      (the two are equivalent).  This may seem awkward or  confus-
  363.      ing,  but it is reasonably intuitive:  just ignore the first
  364.      hyphen and go from there.  It is also  consistent  with  the
  365.      behavior of Unix nice(1).
  366.  
  367.      As suggested by the examples  above,  the  default  variable
  368.      names  are  UNZIP_OPTS  for  VMS  (where  the symbol used to
  369.      install unzip as a foreign command would otherwise  be  con-
  370.      fused  with  the  environment  variable),  and UNZIP for all
  371.      other operating systems.  For  compatibility  with  zip(1L),
  372.      UNZIPOPT  is  also  accepted (don't ask).  If both UNZIP and
  373.      UNZIPOPT  are  defined,  however,  UNZIP  takes  precedence.
  374.      unzip's  diagnostic  option (-v with no zipfile name) can be
  375.      used to check the values of  all  four  possible  unzip  and
  376.      zipinfo environment variables.
  377.  
  378.      The timezone variable (TZ) should be set  according  to  the
  379.      local  timezone  in  order  for  the  -f  and  -u to operate
  380.      correctly.  See the description of  -f  above  for  details.
  381.      This  variable may also be necessary in order for timestamps
  382.      on extracted files to be set correctly.
  383.  
  384. DECRYPTION
  385.      Encrypted archives are fully supported by Info-ZIP software,
  386.      but due to United States export restrictions, the encryption
  387.      and decryption sources are not  packaged  with  the  regular
  388.      unzip  and  zip distributions.  Since the crypt sources were
  389.      written by Europeans, however, they are freely available  at
  390.      sites  throughout  the  world; see the file ``Where'' in any
  391.      Info-ZIP source or binary distribution  for  locations  both
  392.      inside and outside the US.
  393.  
  394.      Because of the separate distribution, not all compiled  ver-
  395.      sions  of  unzip support decryption.  To check a version for
  396.      crypt  support,  either  attempt  to  test  or  extract   an
  397.  
  398. Info-ZIP         Last change: 28 Aug 94 (v5.12)                 7
  399.  
  400. UNZIP(1L)         MISC. REFERENCE MANUAL PAGES          UNZIP(1L)
  401.  
  402.      encrypted  archive,  or else check unzip's diagnostic screen
  403.      (see the -v option above) for ``[decryption]'' as one of the
  404.      special compilation options.
  405.  
  406.      There are no runtime options for decryption;  if  a  zipfile
  407.      member  is  encrypted,  unzip  will  prompt for the password
  408.      without echoing what is typed.  unzip continues to  use  the
  409.      same  password  as  long  as it appears to be valid; it does
  410.      this by testing a 12-byte header.  The correct password will
  411.      always check out against the header, but there is a 1-in-256
  412.      chance that an incorrect password will as well.  (This is  a
  413.      security  feature  of  the  PKWARE  zipfile format; it helps
  414.      prevent brute-force attacks which  might  otherwise  gain  a
  415.      large  speed  advantage by testing only the header.)  In the
  416.      case that an incorrect password is given but it  passes  the
  417.      header  test  anyway,  either  an incorrect CRC will be gen-
  418.      erated for the extracted data or else unzip will fail during
  419.      the  extraction  because the ``decrypted'' bytes do not con-
  420.      stitute a valid compressed data stream.
  421.  
  422.      If the first password fails the header check on  some  file,
  423.      unzip  will prompt for another password, and so on until all
  424.      files are extracted.  If a password is not known, entering a
  425.      null  password (that is, just a carriage return) is taken as
  426.      a signal to skip all further  prompting.   Only  unencrypted
  427.      files  in  the  archive(s)  will  thereafter  be  extracted.
  428.      (Actually that's not quite true; older versions  of  zip(1L)
  429.      and  zipcloak(1L)  allowed  null  passwords, so unzip checks
  430.      each encrypted file to see if the null password works.  This
  431.      may  result in ``false positives'' and extraction errors, as
  432.      noted above.)
  433.  
  434.      Note that there is presently no  way  to  avoid  interactive
  435.      decryption.   This  is  another security feature:  plaintext
  436.      passwords given on the command line or stored in files  con-
  437.      stitute  a  risk because they may be seen by others.  Future
  438.      releases may (under protest, with great disapproval) support
  439.      such shenanigans.
  440.  
  441. EXAMPLES
  442.      To  use  unzip  to  extract  all  members  of  the   archive
  443.      letters.zip  into  the  current directory and subdirectories
  444.      below it, creating any subdirectories as necessary:
  445.  
  446.          unzip letters
  447.  
  448.      To extract all  members  of  letters.zip  into  the  current
  449.      directory only:
  450.  
  451.          unzip -j letters
  452.  
  453. Info-ZIP         Last change: 28 Aug 94 (v5.12)                 8
  454.  
  455. UNZIP(1L)         MISC. REFERENCE MANUAL PAGES          UNZIP(1L)
  456.  
  457.      To test letters.zip, printing only a summary  message  indi-
  458.      cating whether the archive is OK or not:
  459.  
  460.          unzip -tq letters
  461.  
  462.      To test all zipfiles in the current directory, printing only
  463.      the summaries:
  464.  
  465.          unzip -tq \*.zip
  466.  
  467.      (The backslash before the asterisk is only required  if  the
  468.      shell  expands  wildcards,  as  in Unix; double quotes could
  469.      have  been  used  instead,  as  in   the   source   examples
  470.      below.)  To  extract  to  standard  output  all  members  of
  471.      letters.zip whose names end in .tex, auto-converting to  the
  472.      local  end-of-line  convention  and  piping  the output into
  473.      more(1):
  474.  
  475.          unzip -ca letters \*.tex | more
  476.  
  477.      To extract the binary file paper1.dvi to standard output and
  478.      pipe it to a printing program:
  479.  
  480.          unzip -p articles paper1.dvi | dvips
  481.  
  482.      To extract all FORTRAN and C source  files--*.f,  *.c,  *.h,
  483.      and Makefile--into the /tmp directory:
  484.  
  485.          unzip source.zip "*.[fch]" Makefile -d /tmp
  486.  
  487.      (the double quotes are necessary only in Unix  and  only  if
  488.      globbing is turned on).  To extract all FORTRAN and C source
  489.      files, regardless of case (e.g., both *.c and *.C,  and  any
  490.      makefile, Makefile, MAKEFILE or similar):
  491.  
  492.          unzip -C source.zip "*.[fch]" makefile -d /tmp
  493.  
  494.      To extract any such files but convert any  uppercase  MS-DOS
  495.      or  VMS  names  to lowercase and convert the line-endings of
  496.      all of the files to the local standard (without  respect  to
  497.      any files which might be marked ``binary''):
  498.  
  499.          unzip -aaCL source.zip "*.[fch]" makefile -d /tmp
  500.  
  501.      To extract only newer versions of the files already  in  the
  502.      current  directory,  without  querying (NOTE:  be careful of
  503.      unzipping in one timezone a zipfile created in  another--ZIP
  504.      archives  to  date  contain  no  timezone information, and a
  505.      ``newer'' file from an eastern timezone  may,  in  fact,  be
  506.      older):
  507.  
  508. Info-ZIP         Last change: 28 Aug 94 (v5.12)                 9
  509.  
  510. UNZIP(1L)         MISC. REFERENCE MANUAL PAGES          UNZIP(1L)
  511.  
  512.          unzip -fo sources
  513.  
  514.      To extract newer  versions  of  the  files  already  in  the
  515.      current  directory and to create any files not already there
  516.      (same caveat as previous example):
  517.  
  518.          unzip -uo sources
  519.  
  520.      To display a  diagnostic  screen  showing  which  unzip  and
  521.      zipinfo options are stored in environment variables, whether
  522.      decryption support was compiled in, the compiler with  which
  523.      unzip was compiled, etc.:
  524.  
  525.          unzip -v
  526.  
  527.      In the last five examples, assume that UNZIP  or  UNZIP_OPTS
  528.      is set to -q.  To do a singly quiet listing:
  529.  
  530.          unzip -l file.zip
  531.  
  532.      To do a doubly quiet listing:
  533.  
  534.          unzip -ql file.zip
  535.  
  536.      (Note that the ``.zip'' is generally not necessary.)  To  do
  537.      a standard listing:
  538.  
  539.          unzip --ql file.zip
  540.      or
  541.          unzip -l-q file.zip
  542.      or
  543.          unzip -l--q file.zip       (extra minuses don't hurt)
  544.  
  545. TIPS
  546.      The current maintainer, being a lazy  sort,  finds  it  very
  547.      useful  to  define  a pair of aliases:  tt for ``unzip -tq''
  548.      and ii for ``unzip -Z'' (or ``zipinfo'').  One may then sim-
  549.      ply  type ``tt zipfile'' to test an archive, something which
  550.      is worth making a habit of  doing.   With  luck  unzip  will
  551.      report  ``No  errors  detected in zipfile.zip,'' after which
  552.      one may breathe a sigh of relief.
  553.  
  554.      The maintainer  also  finds  it  useful  to  set  the  UNZIP
  555.      environment variable to ``-aL'' and is tempted to add ``-C''
  556.      as well.  His ZIPINFO variable is set to ``-z''.
  557.  
  558. DIAGNOSTICS
  559.      The exit status (or error level) approximates the exit codes
  560.      defined  by PKWARE and takes on the following values, except
  561.      under VMS:
  562.  
  563.           0    normal; no errors or warnings detected.
  564.  
  565. Info-ZIP         Last change: 28 Aug 94 (v5.12)                10
  566.  
  567. UNZIP(1L)         MISC. REFERENCE MANUAL PAGES          UNZIP(1L)
  568.  
  569.           1    one or more warning errors were  encountered,  but
  570.                processing  completed  successfully  anyway.  This
  571.                includes zipfiles where  one  or  more  files  was
  572.                skipped  due  to unsupported compression method or
  573.                encryption with an unknown password.
  574.  
  575.           2    a  generic  error  in  the  zipfile   format   was
  576.                detected.   Processing may have completed success-
  577.                fully anyway;  some  broken  zipfiles  created  by
  578.                other archivers have simple work-arounds.
  579.  
  580.           3    a severe error in the zipfile format was detected.
  581.                Processing probably failed immediately.
  582.  
  583.           4-8  unzip was unable to allocate  memory  for  one  or
  584.                more buffers.
  585.  
  586.           9    the specified zipfiles were not found.
  587.  
  588.           10   invalid options  were  specified  on  the  command
  589.                line.
  590.  
  591.           11   no matching files were found.
  592.  
  593.           50   the disk is (or was) full during extraction.
  594.  
  595.           51   the end of the ZIP archive was encountered  prema-
  596.                turely.
  597.  
  598.      VMS interprets standard Unix (or PC) return values as other,
  599.      scarier-looking things, so by default unzip always returns 0
  600.      (which reportedly gets converted into a VMS  status  of  1--
  601.      i.e., success).  There are two compilation options available
  602.      to  modify  or  expand   upon   this   behavior:    defining
  603.      RETURN_CODES results in a human-readable explanation of what
  604.      the real error status was (but still  with  a  faked  ``suc-
  605.      cess''  exit  value),  while defining RETURN_SEVERITY causes
  606.      unzip to exit  with  a  ``real''  VMS  status.   The  latter
  607.      behavior  will  become the default in future versions unless
  608.      it is found to conflict with officially defined  VMS  codes.
  609.      The  current mapping is as follows:   1 (success) for normal
  610.      exit, 0x7fff0001  for  warning  errors,  and  (0x7fff000?  +
  611.      16*normal_unzip_exit_status) for all other errors, where the
  612.      `?' is 2 (error) for unzip values 2 and 9-11, and  4  (fatal
  613.      error)  for  the  remaining  ones  (3-8, 50, 51).  Check the
  614.      ``unzip -v''  output  to  see  whether  RETURN_SEVERITY  was
  615.      defined at compilation time.
  616.  
  617. BUGS
  618.      When attempting to extract a corrupted archive, unzip may go
  619.      into  an  infinite  loop and, if not stopped quickly enough,
  620.      fill all available disk  space.   Compiling  with  CHECK_EOF
  621.  
  622. Info-ZIP         Last change: 28 Aug 94 (v5.12)                11
  623.  
  624. UNZIP(1L)         MISC. REFERENCE MANUAL PAGES          UNZIP(1L)
  625.  
  626.      should fix this problem for all zipfiles, but the option was
  627.      introduced too late in the testing process to  be  made  the
  628.      default  behavior.  Future versions will be robust enough to
  629.      fail gracefully on damaged archives.  Check the ``unzip -v''
  630.      output  to see whether CHECK_EOF was defined during compila-
  631.      tion.
  632.  
  633.      [MS-DOS] When extracting or testing files from an archive on
  634.      a  defective  floppy  diskette,  if  the  ``Fail'' option is
  635.      chosen from DOS's ``Abort, Retry, Fail?'' message, unzip may
  636.      hang   the  system,  requiring  a  reboot.   Instead,  press
  637.      control-C (or control-Break) to terminate unzip.
  638.  
  639.      Under DEC Ultrix, unzip will sometimes fail on long zipfiles
  640.      (bad  CRC, not always reproducible).  This is apparently due
  641.      either to a hardware bug (cache memory) or an operating sys-
  642.      tem bug (improper handling of page faults?).
  643.  
  644.      Dates and times of stored directories are not restored.
  645.  
  646.      [OS/2] Extended  attributes  for  existing  directories  are
  647.      never  updated.   This is a limitation of the operating sys-
  648.      tem; unzip has no way to determine whether the stored attri-
  649.      butes are newer or older than the existing ones.
  650.  
  651.      [VMS] When extracting to another directory, only the  [.foo]
  652.      syntax  is  accepted  for the -d option; the simple Unix foo
  653.      syntax is silently  ignored  (as  is  the  less  common  VMS
  654.      foo.dir syntax).
  655.  
  656.      [VMS] When the file being extracted already exists,  unzip's
  657.      query  only  allows skipping, overwriting or renaming; there
  658.      should additionally be a choice for creating a  new  version
  659.      of  the file.  In fact, the ``overwrite'' choice does create
  660.      a new  version;  the  old  version  is  not  overwritten  or
  661.      deleted.
  662.  
  663. SEE ALSO
  664.      funzip(1L), zip(1L), zipcloak(1L), zipgrep(1L), zipinfo(1L),
  665.      zipnote(1L), zipsplit(1L)
  666.  
  667. AUTHORS
  668.      The primary Info-ZIP authors  (current  zip-bugs  workgroup)
  669.      are:   Jean-loup Gailly (Zip); Greg R. Roelofs (UnZip); Mark
  670.      Adler (decompression, fUnZip); Kai Uwe Rommel  (OS/2);  Igor
  671.      Mandrichenko  and  Hunter  Goatley (VMS); John Bush and Paul
  672.      Kienitz (Amiga); Antoine Verheijen (Macintosh);  Chris  Her-
  673.      borth  (Atari); Henry Gessau (NT); Karl Davis, Sergio Monesi
  674.      and Evan Shattock (Acorn Archimedes); and Robert Heath (Win-
  675.      dows).   The  author  of  the original unzip code upon which
  676.      Info-ZIP's is based was Samuel H. Smith;  Carl  Mascott  did
  677.      the  first  Unix port; and David P. Kirschbaum organized and
  678.  
  679. Info-ZIP         Last change: 28 Aug 94 (v5.12)                12
  680.  
  681. UNZIP(1L)         MISC. REFERENCE MANUAL PAGES          UNZIP(1L)
  682.  
  683.      led Info-ZIP in its early days.  The full list of  contribu-
  684.      tors  to  UnZip  has  grown quite large; please refer to the
  685.      CONTRIBS file in the UnZip source distribution for  a  rela-
  686.      tively complete version.
  687.  
  688. VERSIONS
  689.      v1.2   15 Mar 89   Samuel H. Smith
  690.      v2.0    9 Sep 89   Samuel H. Smith
  691.      v2.x   fall 1989   many Usenet contributors
  692.      v3.0    1 May 90   Info-ZIP (DPK, consolidator)
  693.      v3.1   15 Aug 90   Info-ZIP (DPK, consolidator)
  694.      v4.0    1 Dec 90   Info-ZIP (GRR, maintainer)
  695.      v4.1   12 May 91   Info-ZIP
  696.      v4.2   20 Mar 92   Info-ZIP (zip-bugs subgroup, GRR)
  697.      v5.0   21 Aug 92   Info-ZIP (zip-bugs subgroup, GRR)
  698.      v5.01  15 Jan 93   Info-ZIP (zip-bugs subgroup, GRR)
  699.      v5.1    7 Feb 94   Info-ZIP (zip-bugs subgroup, GRR)
  700.      v5.11   2 Aug 94   Info-ZIP (zip-bugs subgroup, GRR)
  701.      v5.12  28 Aug 94   Info-ZIP (zip-bugs subgroup, GRR)
  702.  
  703. Info-ZIP         Last change: 28 Aug 94 (v5.12)                13
  704.  
  705.