home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / unzip541.zip / UNZIP541.EXE / unzip.doc < prev    next >
Text File  |  2000-04-16  |  47KB  |  952 lines

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