unzip.doc
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:45k
源码类别:

压缩解压

开发平台:

MultiPlatform

  1. UNZIP(1L)                                               UNZIP(1L)
  2. NAME
  3.        unzip  -  list, test and extract compressed files in a ZIP
  4.        archive
  5. SYNOPSIS
  6.        unzip    [-Z]    [-cflptuvz[abjnoqsCLMVX$]]     file[.zip]
  7.        [file(s) ...]  [-x xfile(s) ...] [-d exdir]
  8. DESCRIPTION
  9.        unzip  will  list,  test,  or  extract  files  from  a ZIP
  10.        archive, commonly found on MS-DOS  systems.   The  default
  11.        behavior  (with no options) is to extract into the current
  12.        directory (and subdirectories below it) all files from the
  13.        specified ZIP archive.  A companion program, zip(1L), cre-
  14.        ates ZIP  archives;  both  programs  are  compatible  with
  15.        archives created by PKWARE's PKZIP and PKUNZIP for MS-DOS,
  16.        but in many cases the program options or default behaviors
  17.        differ.
  18. ARGUMENTS
  19.        file[.zip]
  20.               Path of the ZIP archive(s).  If the file specifica-
  21.               tion is a wildcard, each matching file is processed
  22.               in  an order determined by the operating system (or
  23.               file system).  Only the filename can be a wildcard;
  24.               the  path  itself cannot.  Wildcard expressions are
  25.               similar to Unix egrep(1) (regular) expressions  and
  26.               may contain:
  27.               *      matches a sequence of 0 or more characters
  28.               ?      matches exactly 1 character
  29.               [...]  matches  any  single  character found inside
  30.                      the brackets;  ranges  are  specified  by  a
  31.                      beginning character, a hyphen, and an ending
  32.                      character.  If an  exclamation  point  or  a
  33.                      caret (`!' or `^') follows the left bracket,
  34.                      then the  range  of  characters  within  the
  35.                      brackets  is complemented (that is, anything
  36.                      except the characters inside the brackets is
  37.                      considered a match).
  38.               (Be  sure  to quote any character that might other-
  39.               wise be interpreted or modified  by  the  operating
  40.               system,  particularly  under  Unix and VMS.)  If no
  41.               matches are found, the specification is assumed  to
  42.               be  a literal filename; and if that also fails, the
  43.               suffix .zip is appended.  Note that self-extracting
  44.               ZIP  files  are  supported,  as  with any other ZIP
  45.               archive; just specify  the  .exe  suffix  (if  any)
  46.               explicitly.
  47. Info-ZIP             28 November 1998 (v5.4)                    1
  48. UNZIP(1L)                                               UNZIP(1L)
  49.        [file(s)]
  50.               An  optional  list  of  archive  members to be pro-
  51.               cessed, separated by spaces.   (VMS  versions  com-
  52.               piled  with  VMSCLI defined must delimit files with
  53.               commas instead.  See -v in OPTIONS below.)  Regular
  54.               expressions (wildcards) may be used to match multi-
  55.               ple members; see above.  Again, be  sure  to  quote
  56.               expressions  that  would  otherwise  be expanded or
  57.               modified by the operating system.
  58.        [-x xfile(s)]
  59.               An optional list of archive members to be  excluded
  60.               from  processing.   Since wildcard characters match
  61.               directory separators (`/'), this option may be used
  62.               to  exclude  any  files that are in subdirectories.
  63.               For example, ``unzip  foo  *.[ch]  -x  */*''  would
  64.               extract  all  C source files in the main directory,
  65.               but none in any  subdirectories.   Without  the  -x
  66.               option,  all  C  source  files  in  all directories
  67.               within the zipfile would be extracted.
  68.        [-d exdir]
  69.               An optional directory to which  to  extract  files.
  70.               By default, all files and subdirectories are recre-
  71.               ated in the current directory; the -d option allows
  72.               extraction in an arbitrary directory (always assum-
  73.               ing one has permission to write to the  directory).
  74.               This  option need not appear at the end of the com-
  75.               mand line; it is also accepted before  the  zipfile
  76.               specification  (with  the  normal options), immedi-
  77.               ately after the zipfile specification,  or  between
  78.               the  file(s)  and  the  -x  option.  The option and
  79.               directory may be  concatenated  without  any  white
  80.               space  between  them,  but note that this may cause
  81.               normal shell behavior to be suppressed.  In partic-
  82.               ular, ``-d ~'' (tilde) is expanded by Unix C shells
  83.               into the name of the  user's  home  directory,  but
  84.               ``-d~''  is treated as a literal subdirectory ``~''
  85.               of the current directory.
  86. OPTIONS
  87.        Note that,  in  order  to  support  obsolescent  hardware,
  88.        unzip's  usage  screen  is  limited  to 22 or 23 lines and
  89.        should therefore be considered  only  a  reminder  of  the
  90.        basic  unzip  syntax rather than an exhaustive list of all
  91.        possible flags.  The exhaustive list follows:
  92.        -Z     zipinfo(1L) mode.  If the first option on the  com-
  93.               mand line is -Z, the remaining options are taken to
  94.               be zipinfo(1L) options.  See the appropriate manual
  95.               page for a description of these options.
  96.        -A     [OS/2,  Unix DLL] print extended help for the DLL's
  97.               programming interface (API).
  98. Info-ZIP             28 November 1998 (v5.4)                    2
  99. UNZIP(1L)                                               UNZIP(1L)
  100.        -c     extract files  to  stdout/screen  (``CRT'').   This
  101.               option  is similar to the -p option except that the
  102.               name of each file is printed as  it  is  extracted,
  103.               the  -a option is allowed, and ASCII-EBCDIC conver-
  104.               sion is  automatically  performed  if  appropriate.
  105.               This  option  is  not  listed  in  the  unzip usage
  106.               screen.
  107.        -f     freshen existing files, i.e.,  extract  only  those
  108.               files that already exist on disk and that are newer
  109.               than the disk copies.   By  default  unzip  queries
  110.               before  overwriting,  but the -o option may be used
  111.               to suppress the  queries.   Note  that  under  many
  112.               operating  systems,  the  TZ (timezone) environment
  113.               variable must be set correctly in order for -f  and
  114.               -u  to  work  properly  (under Unix the variable is
  115.               usually set automatically).  The reasons  for  this
  116.               are somewhat subtle but have to do with the differ-
  117.               ences between DOS-format file times  (always  local
  118.               time) and Unix-format times (always in GMT/UTC) and
  119.               the necessity to compare the  two.   A  typical  TZ
  120.               value  is  ``PST8PDT''  (US Pacific time with auto-
  121.               matic  adjustment  for  Daylight  Savings  Time  or
  122.               ``summer time'').
  123.        -l     list  archive  files  (short  format).   The names,
  124.               uncompressed file sizes and modification dates  and
  125.               times  of  the  specified  files are printed, along
  126.               with totals for all files specified.  If UnZip  was
  127.               compiled  with  OS2_EAS defined, the -l option also
  128.               lists columns for the sizes of stored OS/2 extended
  129.               attributes  (EAs)  and  OS/2  access  control lists
  130.               (ACLs).  In addition, the zipfile comment and indi-
  131.               vidual  file comments (if any) are displayed.  If a
  132.               file was archived from a  single-case  file  system
  133.               (for  example,  the old MS-DOS FAT file system) and
  134.               the -L option was given, the filename is  converted
  135.               to lowercase and is prefixed with a caret (^).
  136.        -p     extract  files  to  pipe (stdout).  Nothing but the
  137.               file data is sent to  stdout,  and  the  files  are
  138.               always extracted in binary format, just as they are
  139.               stored (no conversions).
  140.        -t     test archive  files.   This  option  extracts  each
  141.               specified  file  in  memory  and  compares  the CRC
  142.               (cyclic redundancy check, an enhanced checksum)  of
  143.               the  expanded  file with the original file's stored
  144.               CRC value.
  145.        -T     [most OSes] set the timestamp on the archive(s)  to
  146.               that  of  the newest file in each one.  This corre-
  147.               sponds to zip's -go option except that  it  can  be
  148.               used   on   wildcard  zipfiles  (e.g.,  ``unzip  -T
  149. Info-ZIP             28 November 1998 (v5.4)                    3
  150. UNZIP(1L)                                               UNZIP(1L)
  151.               *.zip'') and is much faster.
  152.        -u     update  existing  files  and  create  new  ones  if
  153.               needed.   This option performs the same function as
  154.               the -f option, extracting (with query)  files  that
  155.               are  newer  than  those with the same name on disk,
  156.               and in addition it extracts those files that do not
  157.               already  exist  on disk.  See -f above for informa-
  158.               tion on setting the timezone properly.
  159.        -v     be verbose or print diagnostic version info.   This
  160.               option  has  evolved  and  now  behaves  as both an
  161.               option and a modifier.  As an  option  it  has  two
  162.               purposes:   when  a  zipfile  is  specified with no
  163.               other options, -v lists  archive  files  verbosely,
  164.               adding to the basic -l info the compression method,
  165.               compressed size, compression ratio and 32-bit  CRC.
  166.               When no zipfile is specified (that is, the complete
  167.               command  is  simply  ``unzip  -v''),  a  diagnostic
  168.               screen  is  printed.   In  addition  to  the normal
  169.               header with release date and version,  unzip  lists
  170.               the home Info-ZIP ftp site and where to find a list
  171.               of other ftp and non-ftp sites; the target  operat-
  172.               ing  system  for  which it was compiled, as well as
  173.               (possibly) the hardware on which it  was  compiled,
  174.               the  compiler and version used, and the compilation
  175.               date; any special compilation  options  that  might
  176.               affect the program's operation (see also DECRYPTION
  177.               below); and any options stored in environment vari-
  178.               ables  that  might  do  the  same  (see ENVIRONMENT
  179.               OPTIONS below).  As a modifier it works in conjunc-
  180.               tion  with other options (e.g., -t) to produce more
  181.               verbose or debugging output; this is not yet  fully
  182.               implemented but will be in future releases.
  183.        -z     display only the archive comment.
  184. MODIFIERS
  185.        -a     convert  text  files.   Ordinarily  all  files  are
  186.               extracted exactly as they are stored (as ``binary''
  187.               files).   The  -a option causes files identified by
  188.               zip as text files (those with the `t' label in zip-
  189.               info listings, rather than `b') to be automatically
  190.               extracted as such, converting line endings, end-of-
  191.               file  characters  and  the  character set itself as
  192.               necessary.  (For example, Unix files use line feeds
  193.               (LFs) for end-of-line (EOL) and have no end-of-file
  194.               (EOF)  marker;  Macintoshes  use  carriage  returns
  195.               (CRs)  for  EOLs; and most PC operating systems use
  196.               CR+LF for EOLs and control-Z for EOF.  In addition,
  197.               IBM mainframes and the Michigan Terminal System use
  198.               EBCDIC rather than the more common ASCII  character
  199.               set,  and  NT  supports  Unicode.)  Note that zip's
  200.               identification  of  text  files  is  by  no   means
  201. Info-ZIP             28 November 1998 (v5.4)                    4
  202. UNZIP(1L)                                               UNZIP(1L)
  203.               perfect; some ``text'' files may actually be binary
  204.               and vice versa.  unzip therefore prints  ``[text]''
  205.               or  ``[binary]'' as a visual check for each file it
  206.               extracts when using the -a option.  The -aa  option
  207.               forces  all  files to be extracted as text, regard-
  208.               less of the supposed file type.
  209.        -b     [non-VMS] treat all files as binary (no  text  con-
  210.               versions).  This is a shortcut for ---a.
  211.        -b     [VMS]  auto-convert  binary files (see -a above) to
  212.               fixed-length, 512-byte record format.  Doubling the
  213.               option  (-bb)  forces  all files to be extracted in
  214.               this format.
  215.        -B     [Unix only, and only if  compiled  with  UNIXBACKUP
  216.               defined]  save  a  backup  copy of each overwritten
  217.               file with a tilde appended (e.g., the old  copy  of
  218.               ``foo''  is  renamed to ``foo~'').  This is similar
  219.               to the default behavior of emacs(1) in  many  loca-
  220.               tions.
  221.        -C     match  filenames  case-insensitively.  unzip's phi-
  222.               losophy is ``you get what you ask  for''  (this  is
  223.               also responsible for the -L/-U change; see the rel-
  224.               evant options below).  Because  some  file  systems
  225.               are  fully  case-sensitive (notably those under the
  226.               Unix  operating  system)  and  because   both   ZIP
  227.               archives and unzip itself are portable across plat-
  228.               forms, unzip's default behavior is  to  match  both
  229.               wildcard  and  literal  filenames case-sensitively.
  230.               That is, specifying  ``makefile''  on  the  command
  231.               line  will  only match ``makefile'' in the archive,
  232.               not ``Makefile'' or ``MAKEFILE'' (and similarly for
  233.               wildcard specifications).  Since this does not cor-
  234.               respond to  the  behavior  of  many  other  operat-
  235.               ing/file  systems  (for  example,  OS/2 HPFS, which
  236.               preserves mixed case but is not sensitive  to  it),
  237.               the  -C  option  may  be used to force all filename
  238.               matches to be  case-insensitive.   In  the  example
  239.               above,  all  three  files  would then match ``make-
  240.               file'' (or ``make*'', or similar).  The  -C  option
  241.               affects  files in both the normal file list and the
  242.               excluded-file list (xlist).
  243.        -E     [MacOS only] display contents of MacOS extra  field
  244.               during restore operation.
  245.        -F     [Acorn  only]  suppress  removal  of  NFS  filetype
  246.               extension from stored filenames.
  247.        -F     [Unix   only,   and   only   if    compiled    with
  248.               ACORN_FTYPE_NFS  defined] translate filetype infor-
  249.               mation from ACORN RISC OS extra field blocks into a
  250. Info-ZIP             28 November 1998 (v5.4)                    5
  251. UNZIP(1L)                                               UNZIP(1L)
  252.               NFS  filetype  extension and append it to the names
  253.               of the extracted files.  (When the stored  filename
  254.               appears  to  already  have an appended NFS filetype
  255.               extension, it is replaced  by  the  info  from  the
  256.               extra field.)
  257.        -i     [MacOS only] ignore filenames stored in MacOS extra
  258.               fields.  Instead,  the  most  compatible   filename
  259.               stored in the generic part of the entry's header is
  260.               used.
  261.        -j     junk paths.  The archive's directory  structure  is
  262.               not  recreated;  all  files  are  deposited  in the
  263.               extraction directory (by default, the current one).
  264.        -J     [BeOS  only] junk file attributes.  The file's BeOS
  265.               file attributes are not restored, just  the  file's
  266.               data.
  267.        -J     [MacOS only] ignore MacOS extra fields.  All Macin-
  268.               tosh  specific  info  is  skipped.  Data-fork   and
  269.               resource-fork are restored as separate files.
  270.        -L     convert to lowercase any filename originating on an
  271.               uppercase-only operating  system  or  file  system.
  272.               (This  was  unzip's  default  behavior  in releases
  273.               prior to 5.11; the new default behavior is  identi-
  274.               cal  to  the old behavior with the -U option, which
  275.               is now obsolete and will be  removed  in  a  future
  276.               release.)    Depending   on   the  archiver,  files
  277.               archived under single-case file systems  (VMS,  old
  278.               MS-DOS  FAT,  etc.)  may be stored as all-uppercase
  279.               names;  this  can  be  ugly  or  inconvenient  when
  280.               extracting to a case-preserving file system such as
  281.               OS/2 HPFS or a case-sensitive  one  such  as  under
  282.               Unix.   By  default  unzip  lists and extracts such
  283.               filenames  exactly  as  they're  stored  (excepting
  284.               truncation,  conversion  of unsupported characters,
  285.               etc.); this option causes the names  of  all  files
  286.               from  certain systems to be converted to lowercase.
  287.        -M     pipe all output through an internal  pager  similar
  288.               to  the  Unixmore(1)  command.   At  the  end  of a
  289.               screenful  of   output,   unzip   pauses   with   a
  290.               ``--More--''  prompt;  the  next  screenful  may be
  291.               viewed by pressing the Enter (Return)  key  or  the
  292.               space bar.  unzip can be terminated by pressing the
  293.               ``q'' key and, on some  systems,  the  Enter/Return
  294.               key.   Unlike  Unix  more(1),  there is no forward-
  295.               searching  or  editing  capability.   Also,   unzip
  296.               doesn't  notice  if  long lines wrap at the edge of
  297.               the screen, effectively resulting in  the  printing
  298.               of  two  or more lines and the likelihood that some
  299.               text will scroll off the top of the  screen  before
  300. Info-ZIP             28 November 1998 (v5.4)                    6
  301. UNZIP(1L)                                               UNZIP(1L)
  302.               being viewed.  On some systems the number of avail-
  303.               able lines on the screen is not detected, in  which
  304.               case unzip assumes the height is 24 lines.
  305.        -n     never  overwrite existing files.  If a file already
  306.               exists, skip the extraction of  that  file  without
  307.               prompting.    By   default   unzip  queries  before
  308.               extracting any file that already exists;  the  user
  309.               may  choose  to  overwrite  only  the current file,
  310.               overwrite all files, skip extraction of the current
  311.               file,  skip  extraction  of  all existing files, or
  312.               rename the current file.
  313.        -N     [Amiga] extract file comments as  Amiga  filenotes.
  314.               File  comments  are  created  with the -c option of
  315.               zip(1L), or with the -N option of the Amiga port of
  316.               zip(1L), which stores filenotes as comments.
  317.        -o     overwrite  existing  files without prompting.  This
  318.               is a dangerous option, so use it with care.  (It is
  319.               often used with -f, however, and is the only way to
  320.               overwrite directory EAs under OS/2.)
  321.        -P password
  322.               use password to decrypt encrypted  zipfile  entries
  323.               (if any).  THIS IS INSECURE!  Many multi-user oper-
  324.               ating systems provide ways for any user to see  the
  325.               current  command  line  of  any other user; even on
  326.               stand-alone systems there is always the  threat  of
  327.               over-the-shoulder  peeking.   Storing the plaintext
  328.               password as part of a command line in an  automated
  329.               script  is  even worse.  Whenever possible, use the
  330.               non-echoing, interactive prompt to enter passwords.
  331.               (And  where security is truly important, use strong
  332.               encryption such as Pretty Good Privacy  instead  of
  333.               the relatively weak encryption provided by standard
  334.               zipfile utilities.)
  335.        -q     perform operations quietly (-qq  =  even  quieter).
  336.               Ordinarily unzip prints the names of the files it's
  337.               extracting or testing, the extraction methods,  any
  338.               file  or zipfile comments that may be stored in the
  339.               archive, and possibly a summary when finished  with
  340.               each  archive.   The  -q[q]  options  suppress  the
  341.               printing of some or all of these messages.
  342.        -s     [OS/2, NT, MS-DOS] convert spaces in  filenames  to
  343.               underscores.   Since all PC operating systems allow
  344.               spaces in  filenames,  unzip  by  default  extracts
  345.               filenames     with     spaces     intact     (e.g.,
  346.               ``EA DATA. SF'').  This can  be  awkward,  however,
  347.               since MS-DOS in particular does not gracefully sup-
  348.               port spaces in filenames.  Conversion of spaces  to
  349. Info-ZIP             28 November 1998 (v5.4)                    7
  350. UNZIP(1L)                                               UNZIP(1L)
  351.               underscores  can  eliminate the awkwardness in some
  352.               cases.
  353.        -U     (obsolete; to be removed in a future release) leave
  354.               filenames  uppercase  if created under MS-DOS, VMS,
  355.               etc.  See -L above.
  356.        -V     retain (VMS) file version numbers.  VMS  files  can
  357.               be  stored  with  a  version  number, in the format
  358.               file.ext;##.  By default the ``;##''  version  num-
  359.               bers  are  stripped, but this option allows them to
  360.               be retained.  (On file systems that limit filenames
  361.               to  particularly short lengths, the version numbers
  362.               may be truncated or  stripped  regardless  of  this
  363.               option.)
  364.        -X     [VMS, Unix, OS/2, NT] restore owner/protection info
  365.               (UICs) under VMS, or user and group info  (UID/GID)
  366.               under  Unix,  or  access control lists (ACLs) under
  367.               certain  network-enabled  versions  of  OS/2  (Warp
  368.               Server  with  IBM  LAN Server/Requester 3.0 to 5.0;
  369.               Warp Connect with IBM Peer 1.0), or  security  ACLs
  370.               under  Windows NT.  In most cases this will require
  371.               special system privileges, and doubling the  option
  372.               (-XX)  under  NT  instructs unzip to use privileges
  373.               for extraction; but under Unix, for example, a user
  374.               who  belongs  to  several  groups can restore files
  375.               owned by any of those groups, as long as  the  user
  376.               IDs  match his or her own.  Note that ordinary file
  377.               attributes are always restored--this option applies
  378.               only to optional, extra ownership info available on
  379.               some operating systems.  [NT's access control lists
  380.               do  not  appear  to  be  especially compatible with
  381.               OS/2's, so no attempt  is  made  at  cross-platform
  382.               portability  of access privileges.  It is not clear
  383.               under what conditions this  would  ever  be  useful
  384.               anyway.]
  385.        -$     [MS-DOS,  OS/2, NT] restore the volume label if the
  386.               extraction medium is removable (e.g., a  diskette).
  387.               Doubling  the option (-$$) allows fixed media (hard
  388.               disks) to be labelled as well.  By default,  volume
  389.               labels are ignored.
  390. ENVIRONMENT OPTIONS
  391.        unzip's  default  behavior  may  be  modified  via options
  392.        placed in an environment variable.  This can be done  with
  393.        any  option,  but  it is probably most useful with the -a,
  394.        -L, -C, -q, -o, or -n modifiers:  make unzip  auto-convert
  395.        text  files  by  default,  make  it convert filenames from
  396.        uppercase systems to lowercase, make it match names  case-
  397.        insensitively,  make  it  quieter, or make it always over-
  398.        write or never overwrite files as it extracts  them.   For
  399.        example,  to  make  unzip act as quietly as possible, only
  400. Info-ZIP             28 November 1998 (v5.4)                    8
  401. UNZIP(1L)                                               UNZIP(1L)
  402.        reporting errors, one would use one of the following  com-
  403.        mands:
  404.            UNZIP=-qq; export UNZIP    Unix Bourne shell
  405.            setenv UNZIP -qq           Unix C shell
  406.            set UNZIP=-qq              OS/2 or MS-DOS
  407.            define UNZIP_OPTS "-qq"    VMS (quotes for lowercase)
  408.        Environment  options are, in effect, considered to be just
  409.        like any other command-line options, except that they  are
  410.        effectively  the  first  options  on the command line.  To
  411.        override an environment option, one may  use  the  ``minus
  412.        operator'' to remove it.  For instance, to override one of
  413.        the quiet-flags in the example above, use the command
  414.            unzip --q[other options] zipfile
  415.        The first hyphen is the normal switch character,  and  the
  416.        second  is a minus sign, acting on the q option.  Thus the
  417.        effect here is to cancel one  quantum  of  quietness.   To
  418.        cancel  both  quiet  flags,  two  (or more) minuses may be
  419.        used:
  420.            unzip -t--q zipfile
  421.            unzip ---qt zipfile
  422.        (the two are equivalent).  This may seem awkward  or  con-
  423.        fusing,  but  it is reasonably intuitive:  just ignore the
  424.        first hyphen and go from there.   It  is  also  consistent
  425.        with the behavior of Unix nice(1).
  426.        As  suggested  by the examples above, the default variable
  427.        names are UNZIP_OPTS for VMS (where  the  symbol  used  to
  428.        install unzip as a foreign command would otherwise be con-
  429.        fused with the environment variable), and  UNZIP  for  all
  430.        other  operating systems.  For compatibility with zip(1L),
  431.        UNZIPOPT is also accepted (don't ask).  If both UNZIP  and
  432.        UNZIPOPT  are  defined,  however,  UNZIP takes precedence.
  433.        unzip's diagnostic option (-v with no zipfile name) can be
  434.        used  to  check  the values of all four possible unzip and
  435.        zipinfo environment variables.
  436.        The timezone variable (TZ) should be set according to  the
  437.        local  timezone in order for the -f and -u to operate cor-
  438.        rectly.  See the description  of  -f  above  for  details.
  439.        This  variable  may  also be necessary in order for times-
  440.        tamps on extracted files to be set correctly.  Under  Win-
  441.        dows  95/NT unzip should know the correct timezone even if
  442.        TZ is unset, assuming the timezone is correctly set in the
  443.        Control Panel.
  444. DECRYPTION
  445.        Encrypted  archives  are fully supported by Info-ZIP soft-
  446.        ware, but due to United States  export  restrictions,  the
  447. Info-ZIP             28 November 1998 (v5.4)                    9
  448. UNZIP(1L)                                               UNZIP(1L)
  449.        encryption  and  decryption  sources are not packaged with
  450.        the regular unzip and zip distributions.  Since the  crypt
  451.        sources  were  written  by  Europeans,  however,  they are
  452.        freely available at sites throughout the  world;  see  the
  453.        file  ``WHERE'' in any Info-ZIP source or binary distribu-
  454.        tion for locations both inside and outside the US.
  455.        Because of the separate  distribution,  not  all  compiled
  456.        versions  of unzip support decryption.  To check a version
  457.        for crypt support, either attempt to test  or  extract  an
  458.        encrypted archive, or else check unzip's diagnostic screen
  459.        (see the -v option above) for ``[decryption]'' as  one  of
  460.        the special compilation options.
  461.        As  noted  above,  the  -P  option may be used to supply a
  462.        password on the command line, but at a cost  in  security.
  463.        The  preferred decryption method is simply to extract nor-
  464.        mally; if a zipfile member is encrypted, unzip will prompt
  465.        for  the  password  without  echoing what is typed.  unzip
  466.        continues to use the same password as long as  it  appears
  467.        to  be  valid,  by  testing a 12-byte header on each file.
  468.        The correct password will always  check  out  against  the
  469.        header,  but  there is a 1-in-256 chance that an incorrect
  470.        password will as well.  (This is a security feature of the
  471.        PKWARE   zipfile  format;  it  helps  prevent  brute-force
  472.        attacks that might otherwise gain a large speed  advantage
  473.        by  testing  only the header.)  In the case that an incor-
  474.        rect password is given but it passes the header test  any-
  475.        way,  either  an  incorrect  CRC will be generated for the
  476.        extracted data or else unzip will fail during the  extrac-
  477.        tion  because  the ``decrypted'' bytes do not constitute a
  478.        valid compressed data stream.
  479.        If the first password fails the header check on some file,
  480.        unzip  will  prompt  for another password, and so on until
  481.        all files are extracted.  If  a  password  is  not  known,
  482.        entering  a null password (that is, just a carriage return
  483.        or ``Enter'') is taken as a signal  to  skip  all  further
  484.        prompting.   Only unencrypted files in the archive(s) will
  485.        thereafter be extracted.  (In fact, that's not quite true;
  486.        older  versions  of  zip(1L) and zipcloak(1L) allowed null
  487.        passwords, so unzip checks each encrypted file to  see  if
  488.        the null password works.  This may result in ``false posi-
  489.        tives'' and extraction errors, as noted above.)
  490.        Archives encrypted  with  8-bit  passwords  (for  example,
  491.        passwords  with  accented  European characters) may not be
  492.        portable across  systems  and/or  other  archivers.   This
  493.        problem  stems  from  the use of multiple encoding methods
  494.        for such characters, including Latin-1  (ISO  8859-1)  and
  495.        OEM  code  page  850.   DOS  PKZIP 2.04g uses the OEM code
  496.        page; Windows PKZIP 2.50 uses Latin-1  (and  is  therefore
  497.        incompatible  with  DOS PKZIP); Info-ZIP uses the OEM code
  498.        page on DOS, OS/2 and Win3.x ports but Latin-1  everywhere
  499. Info-ZIP             28 November 1998 (v5.4)                   10
  500. UNZIP(1L)                                               UNZIP(1L)
  501.        else; and Nico Mak's WinZip 6.x does not allow 8-bit pass-
  502.        words at all.  UnZip 5.3 attempts to use the default char-
  503.        acter set first (e.g., Latin-1), followed by the alternate
  504.        one (e.g., OEM code page) to test  passwords.   On  EBCDIC
  505.        systems,  if  both  of these fail, EBCDIC encoding will be
  506.        tested as a  last  resort.   (Since  there  are  no  known
  507.        archivers  that  encrypt  using EBCDIC encoding, EBCDIC is
  508.        not tested on non-EBCDIC systems.)  ISO  character  encod-
  509.        ings other than Latin-1 are not supported.
  510. EXAMPLES
  511.        To  use  unzip  to extract all members of the archive let-
  512.        ters.zip into the  current  directory  and  subdirectories
  513.        below it, creating any subdirectories as necessary:
  514.            unzip letters
  515.        To  extract  all  members  of letters.zip into the current
  516.        directory only:
  517.            unzip -j letters
  518.        To test letters.zip, printing only a summary message indi-
  519.        cating whether the archive is OK or not:
  520.            unzip -tq letters
  521.        To  test  all  zipfiles in the current directory, printing
  522.        only the summaries:
  523.            unzip -tq *.zip
  524.        (The backslash before the asterisk is only required if the
  525.        shell  expands  wildcards, as in Unix; double quotes could
  526.        have  been  used  instead,  as  in  the  source   examples
  527.        below.)  To extract to standard output all members of let-
  528.        ters.zip whose names end in .tex, auto-converting  to  the
  529.        local  end-of-line  convention  and piping the output into
  530.        more(1):
  531.            unzip -ca letters *.tex | more
  532.        To extract the binary file paper1.dvi to  standard  output
  533.        and pipe it to a printing program:
  534.            unzip -p articles paper1.dvi | dvips
  535.        To  extract all FORTRAN and C source files--*.f, *.c, *.h,
  536.        and Makefile--into the /tmp directory:
  537.            unzip source.zip "*.[fch]" Makefile -d /tmp
  538.        (the double quotes are necessary only in Unix and only  if
  539.        globbing  is  turned  on).   To  extract all FORTRAN and C
  540. Info-ZIP             28 November 1998 (v5.4)                   11
  541. UNZIP(1L)                                               UNZIP(1L)
  542.        source files, regardless of case (e.g., both *.c and  *.C,
  543.        and any makefile, Makefile, MAKEFILE or similar):
  544.            unzip -C source.zip "*.[fch]" makefile -d /tmp
  545.        To extract any such files but convert any uppercase MS-DOS
  546.        or VMS names to lowercase and convert the line-endings  of
  547.        all of the files to the local standard (without respect to
  548.        any files that might be marked ``binary''):
  549.            unzip -aaCL source.zip "*.[fch]" makefile -d /tmp
  550.        To extract only newer versions of the files already in the
  551.        current  directory, without querying (NOTE:  be careful of
  552.        unzipping  in  one   timezone   a   zipfile   created   in
  553.        another--ZIP  archives other than those created by Zip 2.1
  554.        or later contain no timezone information, and a  ``newer''
  555.        file from an eastern timezone may, in fact, be older):
  556.            unzip -fo sources
  557.        To extract newer versions of the files already in the cur-
  558.        rent directory and to create any files not  already  there
  559.        (same caveat as previous example):
  560.            unzip -uo sources
  561.        To  display  a  diagnostic  screen showing which unzip and
  562.        zipinfo  options  are  stored  in  environment  variables,
  563.        whether  decryption  support was compiled in, the compiler
  564.        with which unzip was compiled, etc.:
  565.            unzip -v
  566.        In the last five examples, assume that UNZIP or UNZIP_OPTS
  567.        is set to -q.  To do a singly quiet listing:
  568.            unzip -l file.zip
  569.        To do a doubly quiet listing:
  570.            unzip -ql file.zip
  571.        (Note  that  the ``.zip'' is generally not necessary.)  To
  572.        do a standard listing:
  573.            unzip --ql file.zip
  574.        or
  575.            unzip -l-q file.zip
  576.        or
  577.            unzip -l--q file.zip       (extra minuses don't hurt)
  578. TIPS
  579.        The current maintainer, being a lazy sort, finds  it  very
  580. Info-ZIP             28 November 1998 (v5.4)                   12
  581. UNZIP(1L)                                               UNZIP(1L)
  582.        useful  to define a pair of aliases:  tt for ``unzip -tq''
  583.        and ii for ``unzip -Z'' (or ``zipinfo'').   One  may  then
  584.        simply  type  ``tt zipfile'' to test an archive, something
  585.        that is worth making a habit of doing.   With  luck  unzip
  586.        will  report  ``No  errors  detected in compressed data of
  587.        zipfile.zip,'' after which  one  may  breathe  a  sigh  of
  588.        relief.
  589.        The maintainer also finds it useful to set the UNZIP envi-
  590.        ronment variable to ``-aL'' and is tempted to  add  ``-C''
  591.        as well.  His ZIPINFO variable is set to ``-z''.
  592. DIAGNOSTICS
  593.        The  exit  status  (or  error level) approximates the exit
  594.        codes defined by PKWARE and takes on the following values,
  595.        except under VMS:
  596.               0      normal; no errors or warnings detected.
  597.               1      one or more warning errors were encountered,
  598.                      but processing completed  successfully  any-
  599.                      way.   This  includes  zipfiles where one or
  600.                      more files was skipped  due  to  unsupported
  601.                      compression  method  or  encryption  with an
  602.                      unknown password.
  603.               2      a generic error in the  zipfile  format  was
  604.                      detected.   Processing  may  have  completed
  605.                      successfully anyway;  some  broken  zipfiles
  606.                      created by other archivers have simple work-
  607.                      arounds.
  608.               3      a severe error in  the  zipfile  format  was
  609.                      detected.   Processing probably failed imme-
  610.                      diately.
  611.               4      unzip was unable to allocate memory for  one
  612.                      or  more  buffers during program initializa-
  613.                      tion.
  614.               5      unzip  was  unable  to  allocate  memory  or
  615.                      unable  to  obtain a tty to read the decryp-
  616.                      tion password(s).
  617.               6      unzip was unable to allocate  memory  during
  618.                      decompression to disk.
  619.               7      unzip  was  unable to allocate memory during
  620.                      in-memory decompression.
  621.               8      [currently not used]
  622.               9      the specified zipfiles were not found.
  623. Info-ZIP             28 November 1998 (v5.4)                   13
  624. UNZIP(1L)                                               UNZIP(1L)
  625.               10     invalid options were specified on  the  com-
  626.                      mand line.
  627.               11     no matching files were found.
  628.               50     the disk is (or was) full during extraction.
  629.               51     the end of the ZIP archive  was  encountered
  630.                      prematurely.
  631.               80     the user aborted unzip prematurely with con-
  632.                      trol-C (or similar)
  633.               81     testing or extraction of one or  more  files
  634.                      failed  due to unsupported compression meth-
  635.                      ods or unsupported decryption.
  636.               82     no files were found due  to  bad  decryption
  637.                      password(s).   (If even one file is success-
  638.                      fully processed, however, the exit status is
  639.                      1.)
  640.        VMS  interprets  standard  Unix  (or  PC) return values as
  641.        other, scarier-looking things, so unzip instead maps  them
  642.        into  VMS-style  status  codes.  The current mapping is as
  643.        follows:   1 (success) for  normal  exit,  0x7fff0001  for
  644.        warning     errors,     and    (0x7fff000?    +    16*nor-
  645.        mal_unzip_exit_status) for all other errors, where the `?'
  646.        is  2  (error)  for  unzip values 2, 9-11 and 80-82, and 4
  647.        (fatal error) for the remaining ones (3-8,  50,  51).   In
  648.        addition,  there  is  a  compilation option to expand upon
  649.        this behavior:  defining RETURN_CODES results in a  human-
  650.        readable explanation of what the error status means.
  651. BUGS
  652.        Multi-part  archives are not yet supported, except in con-
  653.        junction  with  zip.   (All  parts  must  be  concatenated
  654.        together  in  order, and then ``zip -F'' must be performed
  655.        on the concatenated archive in order to ``fix'' it.)  This
  656.        will definitely be corrected in the next major release.
  657.        Archives  read  from standard input are not yet supported,
  658.        except with funzip (and then only the first member of  the
  659.        archive can be extracted).
  660.        Archives  encrypted  with 8-bit passwords (e.g., passwords
  661.        with accented European characters)  may  not  be  portable
  662.        across systems and/or other archivers.  See the discussion
  663.        in DECRYPTION above.
  664.        unzip's -M (``more'') option is overly simplistic  in  its
  665.        handling  of  screen  output;  as noted above, it fails to
  666.        detect the wrapping of long lines and  may  thereby  cause
  667.        lines  at  the top of the screen to be scrolled off before
  668. Info-ZIP             28 November 1998 (v5.4)                   14
  669. UNZIP(1L)                                               UNZIP(1L)
  670.        being read.  unzip should detect and treat each occurrence
  671.        of   line-wrap  as  one  additional  line  printed.   This
  672.        requires knowledge of the screen's width as  well  as  its
  673.        height.   In addition, unzip should detect the true screen
  674.        geometry on all systems.
  675.        Dates, times and permissions of stored directories are not
  676.        restored except under Unix.
  677.        [MS-DOS]  When extracting or testing files from an archive
  678.        on a defective floppy diskette, if the ``Fail'' option  is
  679.        chosen  from  DOS's ``Abort, Retry, Fail?'' message, older
  680.        versions of unzip may hang the system, requiring a reboot.
  681.        This  problem  appears to be fixed, but control-C (or con-
  682.        trol-Break) can still be used to terminate unzip.
  683.        Under DEC Ultrix, unzip would sometimes fail on long  zip-
  684.        files (bad CRC, not always reproducible).  This was appar-
  685.        ently due either to a hardware bug (cache  memory)  or  an
  686.        operating  system bug (improper handling of page faults?).
  687.        Since Ultrix has been abandoned in favor of  Digital  Unix
  688.        (OSF/1), this may not be an issue anymore.
  689.        [Unix]  Unix  special  files  such  as FIFO buffers (named
  690.        pipes),  block  devices  and  character  devices  are  not
  691.        restored  even if they are somehow represented in the zip-
  692.        file, nor are hard-linked files relinked.   Basically  the
  693.        only  file  types  restored  by  unzip  are regular files,
  694.        directories and symbolic (soft) links.
  695.        [OS/2] Extended attributes for  existing  directories  are
  696.        only  updated  if  the  -o  (``overwrite  all'') option is
  697.        given.  This is a  limitation  of  the  operating  system;
  698.        because  directories  only have a creation time associated
  699.        with them, unzip has  no  way  to  determine  whether  the
  700.        stored  attributes  are newer or older than those on disk.
  701.        In practice this may mean a two-pass approach is required:
  702.        first  unpack the archive normally (with or without fresh-
  703.        ening/updating existing files), then  overwrite  just  the
  704.        directory entries (e.g., ``unzip -o foo */'').
  705.        [VMS]  When  extracting  to  another  directory,  only the
  706.        [.foo] syntax is accepted for the -d  option;  the  simple
  707.        Unix foo syntax is silently ignored (as is the less common
  708.        VMS foo.dir syntax).
  709.        [VMS]  When  the  file  being  extracted  already  exists,
  710.        unzip's  query only allows skipping, overwriting or renam-
  711.        ing; there should additionally be a choice for creating  a
  712.        new  version  of  the  file.   In  fact, the ``overwrite''
  713.        choice does create a new version; the old version  is  not
  714.        overwritten or deleted.
  715. Info-ZIP             28 November 1998 (v5.4)                   15
  716. UNZIP(1L)                                               UNZIP(1L)
  717. SEE ALSO
  718.        funzip(1L),   zip(1L),   zipcloak(1L),  zipgrep(1L),  zip-
  719.        info(1L), zipnote(1L), zipsplit(1L)
  720. URL
  721.        The    Info-ZIP    home    page    is     currently     at
  722.        http://www.cdrom.com/pub/infozip/ .
  723. AUTHORS
  724.        The  primary Info-ZIP authors (current semi-active members
  725.        of  the  Zip-Bugs  workgroup)  are:   Greg  ``Cave  Newt''
  726.        Roelofs  (UnZip);  Onno  van  der  Linden (Zip); Jean-loup
  727.        Gailly (compression); Mark Adler (decompression,  fUnZip);
  728.        Christian  Spieler (UnZip maintance coordination, VMS, MS-
  729.        DOS, Windows 95, NT, shared code, general  Zip  and  UnZip
  730.        integration  and  optimization);  Mike White (Windows GUI,
  731.        Windows DLLs); Kai Uwe Rommel (OS/2); Paul Kienitz (Amiga,
  732.        Windows  95);  Chris Herborth (BeOS, QNX, Atari); Jonathan
  733.        Hudson (SMS/QDOS); Sergio Monesi (Acorn RISC  OS);  Harald
  734.        Denker  (Atari,  MVS);  John Bush (Solaris, Amiga); Hunter
  735.        Goatley (VMS); Steve Salisbury  (Windows  95,  NT);  Steve
  736.        Miller  (Windows  CE GUI), Johnny Lee (MS-DOS, Windows 95,
  737.        NT); and Dave Smith (Tandem NSK).  The author of the orig-
  738.        inal  unzip code upon which Info-ZIP's was based is Samuel
  739.        H. Smith; Carl Mascott did the first Unix port; and  David
  740.        P.   Kirschbaum  organized  and  led Info-ZIP in its early
  741.        days with Keith Petersen hosting the original mailing list
  742.        at  WSMR-SimTel20.  The full list of contributors to UnZip
  743.        has grown quite large; please refer to the  CONTRIBS  file
  744.        in the UnZip source distribution for a relatively complete
  745.        version.
  746. VERSIONS
  747.        v1.2   15 Mar 89   Samuel H. Smith
  748.        v2.0    9 Sep 89   Samuel H. Smith
  749.        v2.x   fall 1989   many Usenet contributors
  750.        v3.0    1 May 90   Info-ZIP (DPK, consolidator)
  751.        v3.1   15 Aug 90   Info-ZIP (DPK, consolidator)
  752.        v4.0    1 Dec 90   Info-ZIP (GRR, maintainer)
  753.        v4.1   12 May 91   Info-ZIP
  754.        v4.2   20 Mar 92   Info-ZIP (Zip-Bugs subgroup, GRR)
  755.        v5.0   21 Aug 92   Info-ZIP (Zip-Bugs subgroup, GRR)
  756.        v5.01  15 Jan 93   Info-ZIP (Zip-Bugs subgroup, GRR)
  757.        v5.1    7 Feb 94   Info-ZIP (Zip-Bugs subgroup, GRR)
  758.        v5.11   2 Aug 94   Info-ZIP (Zip-Bugs subgroup, GRR)
  759.        v5.12  28 Aug 94   Info-ZIP (Zip-Bugs subgroup, GRR)
  760.        v5.2   30 Apr 96   Info-ZIP (Zip-Bugs subgroup, GRR)
  761.        v5.3   22 Apr 97   Info-ZIP (Zip-Bugs subgroup, GRR)
  762.        v5.31  31 May 97   Info-ZIP (Zip-Bugs subgroup, GRR)
  763.        v5.32   3 Nov 97   Info-ZIP (Zip-Bugs subgroup, GRR)
  764.        v5.4   28 Nov 98   Info-ZIP (Zip-Bugs subgroup, SPC)
  765. Info-ZIP             28 November 1998 (v5.4)                   16