Bash Cures Cancer
Learn the UNIX/Linux command line

Home     Man Pages     SpamDefeator


UNZIP(1L)							    UNZIP(1L)



NAME
       unzip - list, test and extract compressed files in a ZIP archive

SYNOPSIS
       unzip   [-Z]   [-cflptuvz[abjnoqsCLMVX$/:]]  file[.zip]	[file(s) ...]
       [-x xfile(s) ...] [-d exdir]

DESCRIPTION
       unzip will list, test, or extract files from a ZIP  archive,  commonly
       found on MS-DOS systems.	 The default behavior (with no options) is to
       extract into the current directory (and subdirectories below  it)  all
       files  from  the specified ZIP archive.	A companion program, zip(1L),
       creates ZIP archives; both programs are compatible with archives	 cre-
       ated  by	 PKWARE's PKZIP and PKUNZIP for MS-DOS, but in many cases the
       program options or default behaviors differ.

ARGUMENTS
       file[.zip]
	      Path of the ZIP archive(s).  If the  file	 specification	is  a
	      wildcard,	 each  matching	 file is processed in an order deter-
	      mined by the operating system (or file system).  Only the file-
	      name  can	 be  a	wildcard;  the	path itself cannot.  Wildcard
	      expressions are similar to those	supported  in  commonly	 used
	      Unix shells (sh, ksh, csh) and may contain:

	      *	     matches a sequence of 0 or more characters

	      ?	     matches exactly 1 character

	      [...]  matches  any single character found inside the brackets;
		     ranges are specified by a beginning character, a hyphen,
		     and  an  ending character.	 If an exclamation point or a
		     caret ('!' or '^') follows the left  bracket,  then  the
		     range  of characters within the brackets is complemented
		     (that is, anything	 except	 the  characters  inside  the
		     brackets is considered a match).

	      (Be  sure to quote any character that might otherwise be inter-
	      preted or modified by the operating system, particularly	under
	      Unix  and	 VMS.)	If no matches are found, the specification is
	      assumed to be a literal filename; and if that also  fails,  the
	      suffix  .zip  is appended.  Note that self-extracting ZIP files
	      are supported, as with any other ZIP archive; just specify  the
	      .exe suffix (if any) explicitly.

       [file(s)]
	      An  optional list of archive members to be processed, separated
	      by spaces.  (VMS versions compiled  with	VMSCLI	defined	 must
	      delimit  files  with commas instead.  See -v in OPTIONS below.)
	      Regular expressions (wildcards) may be used to  match  multiple
	      members;	see  above.  Again, be sure to quote expressions that
	      would otherwise be expanded or modified by the  operating	 sys-
	      tem.

       [-x xfile(s)]
	      An  optional  list  of archive members to be excluded from pro-
	      cessing.	Since wildcard characters match directory  separators
	      ('/'), this option may be used to exclude any files that are in
	      subdirectories.  For example, ''unzip foo *.[ch] -x */*'' would
	      extract  all  C source files in the main directory, but none in
	      any subdirectories.  Without the -x option, all C source	files
	      in all directories within the zipfile would be extracted.

       [-d exdir]
	      An  optional  directory to which to extract files.  By default,
	      all files and  subdirectories  are  recreated  in	 the  current
	      directory;  the  -d  option  allows  extraction in an arbitrary
	      directory (always assuming one has permission to write  to  the
	      directory).  This option need not appear at the end of the com-
	      mand line; it is also accepted before the zipfile specification
	      (with the normal options), immediately after the zipfile speci-
	      fication, or between the file(s) and the -x option.  The option
	      and  directory  may  be  concatenated  without  any white space
	      between them, but note that this may cause normal shell  behav-
	      ior  to  be  suppressed.	 In  particular,  ''-d ~'' (tilde) is
	      expanded by Unix C shells into the  name	of  the	 user's	 home
	      directory,  but  ''-d~''	is  treated as a literal subdirectory
	      ''~'' of the current directory.

OPTIONS
       Note that, in order to support  obsolescent  hardware,  unzip's	usage
       screen is limited to 22 or 23 lines and should therefore be considered
       only a reminder of the basic unzip syntax rather	 than  an  exhaustive
       list of all possible flags.  The exhaustive list follows:

       -Z     zipinfo(1L)  mode.   If the first option on the command line is
	      -Z, the remaining options are taken to be zipinfo(1L)  options.
	      See  the	appropriate  manual  page  for a description of these
	      options.

       -A     [OS/2, Unix DLL] print extended help for the DLL's  programming
	      interface (API).

       -c     extract files to stdout/screen (''CRT'').	 This option is simi-
	      lar to the -p option except that	the  name  of  each  file  is
	      printed  as  it  is  extracted,  the  -a option is allowed, and
	      ASCII-EBCDIC conversion is automatically performed if appropri-
	      ate.  This option is not listed in the unzip usage screen.

       -f     freshen  existing	 files,	 i.e.,	extract only those files that
	      already exist on disk and that are newer than the disk  copies.
	      By  default unzip queries before overwriting, but the -o option
	      may be used to suppress the  queries.   Note  that  under	 many
	      operating	 systems, the TZ (timezone) environment variable must
	      be set correctly in order for -f and -u to work properly (under
	      Unix  the	 variable is usually set automatically).  The reasons
	      for this are somewhat subtle but have to do  with	 the  differ-
	      ences  between  DOS-format  file	times (always local time) and
	      Unix-format times (always in GMT/UTC) and the necessity to com-
	      pare  the	 two.	A typical TZ value is ''PST8PDT'' (US Pacific
	      time with automatic adjustment for  Daylight  Savings  Time  or
	      ''summer time'').

       -l     list  archive  files  (short  format).  The names, uncompressed
	      file sizes and modification dates and times  of  the  specified
	      files  are  printed, along with totals for all files specified.
	      If UnZip was compiled with OS2_EAS defined, the -l option	 also
	      lists  columns for the sizes of stored OS/2 extended attributes
	      (EAs) and OS/2 access control lists (ACLs).  In  addition,  the
	      zipfile  comment and individual file comments (if any) are dis-
	      played.  If a file was archived from a single-case file  system
	      (for example, the old MS-DOS FAT file system) and the -L option
	      was given, the filename is converted to lowercase and  is	 pre-
	      fixed with a caret (^).

       -p     extract  files  to pipe (stdout).	 Nothing but the file data is
	      sent to stdout, and the files are always	extracted  in  binary
	      format, just as they are stored (no conversions).

       -t     test  archive  files.  This option extracts each specified file
	      in memory and compares the CRC  (cyclic  redundancy  check,  an
	      enhanced	checksum)  of  the  expanded  file  with the original
	      file's stored CRC value.

       -T     [most OSes] set the timestamp on the archive(s) to that of  the
	      newest  file in each one.	 This corresponds to zip's -go option
	      except that it can be used on wildcard zipfiles (e.g.,  ''unzip
	      -T \*.zip'') and is much faster.

       -u     update  existing	files  and  create  new ones if needed.	 This
	      option performs the same function as the -f option,  extracting
	      (with query) files that are newer than those with the same name
	      on disk, and in addition it extracts those files	that  do  not
	      already exist on disk.  See -f above for information on setting
	      the timezone properly.

       -v     be verbose or print diagnostic version info.  This  option  has
	      evolved  and  now behaves as both an option and a modifier.  As
	      an option it has two purposes:  when  a  zipfile	is  specified
	      with no other options, -v lists archive files verbosely, adding
	      to the basic -l info the compression method,  compressed	size,
	      compression ratio and 32-bit CRC.	 When no zipfile is specified
	      (that is, the complete command is simply ''unzip -v''), a diag-
	      nostic  screen  is  printed.   In addition to the normal header
	      with release date and version, unzip lists  the  home  Info-ZIP
	      ftp  site	 and  where  to	 find a list of other ftp and non-ftp
	      sites; the target operating system for which it  was  compiled,
	      as  well	as  (possibly) the hardware on which it was compiled,
	      the compiler and version used, and the  compilation  date;  any
	      special  compilation  options  that  might affect the program's
	      operation (see also DECRYPTION below); and any  options  stored
	      in  environment  variables that might do the same (see ENVIRON-
	      MENT OPTIONS below).  As a modifier  it  works  in  conjunction
	      with other options (e.g., -t) to produce more verbose or debug-
	      ging output; this is not yet fully implemented but will  be  in
	      future releases.

       -z     display only the archive comment.

MODIFIERS
       -a     convert text files.  Ordinarily all files are extracted exactly
	      as they are stored (as ''binary'' files).	 The -a option causes
	      files identified by zip as text files (those with the 't' label
	      in zipinfo listings,  rather  than  'b')	to  be	automatically
	      extracted as such, converting line endings, end-of-file charac-
	      ters and the character set itself as necessary.  (For  example,
	      Unix  files use line feeds (LFs) for end-of-line (EOL) and have
	      no end-of-file (EOF) marker; Macintoshes use  carriage  returns
	      (CRs)  for  EOLs;	 and  most PC operating systems use CR+LF for
	      EOLs and control-Z for EOF.  In addition,	 IBM  mainframes  and
	      the  Michigan  Terminal  System use EBCDIC rather than the more
	      common ASCII character set, and  NT  supports  Unicode.)	 Note
	      that zip's identification of text files is by no means perfect;
	      some ''text'' files may actually	be  binary  and	 vice  versa.
	      unzip  therefore	prints ''[text]'' or ''[binary]'' as a visual
	      check for each file it extracts when using the -a option.	  The
	      -aa option forces all files to be extracted as text, regardless
	      of the supposed file type.

       -b     [general] treat all files	 as  binary  (no  text	conversions).
	      This is a shortcut for ---a.

       -b     [Tandem]	force the creation files with filecode type 180 ('C')
	      when extracting Zip entries marked as "text". (On Tandem, -a is
	      enabled by default, see above).

       -b     [VMS] auto-convert binary files (see -a above) to fixed-length,
	      512-byte record format.  Doubling the option (-bb)  forces  all
	      files  to be extracted in this format. When extracting to stan-
	      dard output (-c or -p option in effect), the default conversion
	      of text record delimiters is disabled for binary (-b) resp. all
	      (-bb) files.

       -B     [Unix only, and only if compiled with UNIXBACKUP defined]	 save
	      a	 backup	 copy  of each overwritten file with a tilde appended
	      (e.g., the old copy of ''foo'' is renamed to  ''foo~'').	 This
	      is  similar  to  the default behavior of emacs(1) in many loca-
	      tions.

       -C     match  filenames	case-insensitively.   unzip's  philosophy  is
	      ''you  get what you ask for'' (this is also responsible for the
	      -L/-U change; see the relevant options  below).	Because	 some
	      file  systems are fully case-sensitive (notably those under the
	      Unix operating system) and because both ZIP archives and	unzip
	      itself  are portable across platforms, unzip's default behavior
	      is to match both wildcard	 and  literal  filenames  case-sensi-
	      tively.	That  is, specifying ''makefile'' on the command line
	      will only match ''makefile'' in the archive,  not	 ''Makefile''
	      or  ''MAKEFILE''	(and  similarly for wildcard specifications).
	      Since this does not correspond to the behavior  of  many	other
	      operating/file systems (for example, OS/2 HPFS, which preserves
	      mixed case but is not sensitive to it), the -C  option  may  be
	      used  to force all filename matches to be case-insensitive.  In
	      the example above, all three files  would	 then  match  ''make-
	      file'' (or ''make*'', or similar).  The -C option affects files
	      in both  the  normal  file  list	and  the  excluded-file	 list
	      (xlist).

       -E     [MacOS  only]  display  contents	of  MacOS  extra field during
	      restore operation.

       -F     [Acorn only] suppress removal of NFS  filetype  extension	 from
	      stored filenames.

       -F     [non-Acorn systems supporting long filenames with embedded com-
	      mas, and only if compiled with ACORN_FTYPE_NFS defined]  trans-
	      late filetype information from ACORN RISC OS extra field blocks
	      into a NFS filetype extension and append it to the names of the
	      extracted	 files.	 (When the stored filename appears to already
	      have an appended NFS filetype extension, it is replaced by  the
	      info from the extra field.)

       -i     [MacOS  only]  ignore  filenames	stored in MacOS extra fields.
	      Instead, the most compatible filename  stored  in	 the  generic
	      part of the entry's header is used.

       -j     junk  paths.   The  archive's directory structure is not recre-
	      ated; all files are deposited in the extraction  directory  (by
	      default, the current one).

       -J     [BeOS  only]  junk  file	attributes.   The  file's  BeOS	 file
	      attributes are not restored, just the file's data.

       -J     [MacOS only] ignore MacOS extra fields.  All Macintosh specific
	      info  is	skipped.  Data-fork and resource-fork are restored as
	      separate files.

       -L     convert to lowercase any filename originating on an  uppercase-
	      only  operating  system  or  file	 system.   (This  was unzip's
	      default behavior in releases prior to  5.11;  the	 new  default
	      behavior	is  identical to the old behavior with the -U option,
	      which is now obsolete and will be removed in a future release.)
	      Depending	 on  the  archiver,  files archived under single-case
	      file systems (VMS, old MS-DOS FAT, etc.) may be stored as	 all-
	      uppercase names; this can be ugly or inconvenient when extract-
	      ing to a case-preserving file system such as  OS/2  HPFS	or  a
	      case-sensitive  one such as under Unix.  By default unzip lists
	      and extracts such filenames exactly as they're stored  (except-
	      ing  truncation,	conversion  of unsupported characters, etc.);
	      this option causes the names of all files from certain  systems
	      to be converted to lowercase.  The -LL option forces conversion
	      of every filename to lowercase, regardless of  the  originating
	      file system.

       -M     pipe  all	 output through an internal pager similar to the Unix
	      more(1) command.	At the end of a screenful  of  output,	unzip
	      pauses  with  a  ''--More--'' prompt; the next screenful may be
	      viewed by pressing the Enter (Return) key	 or  the  space	 bar.
	      unzip  can be terminated by pressing the ''q'' key and, on some
	      systems, the Enter/Return key.  Unlike Unix more(1),  there  is
	      no   forward-searching  or  editing  capability.	 Also,	unzip
	      doesn't notice if long lines wrap at the edge  of	 the  screen,
	      effectively  resulting in the printing of two or more lines and
	      the likelihood that some text will scroll off the	 top  of  the
	      screen  before  being  viewed.   On  some systems the number of
	      available lines on the screen is not detected,  in  which	 case
	      unzip assumes the height is 24 lines.

       -n     never overwrite existing files.  If a file already exists, skip
	      the extraction of that  file  without  prompting.	  By  default
	      unzip  queries  before extracting any file that already exists;
	      the user may choose to overwrite only the current	 file,	over-
	      write  all  files,  skip	extraction  of the current file, skip
	      extraction of all existing files, or rename the current file.

       -N     [Amiga] extract file comments as Amiga  filenotes.   File	 com-
	      ments are created with the -c option of zip(1L), or with the -N
	      option of the Amiga port of zip(1L), which stores filenotes  as
	      comments.

       -o     overwrite	 existing files without prompting.  This is a danger-
	      ous option, so use it with care.	(It is often  used  with  -f,
	      however,	and  is the only way to overwrite directory EAs under
	      OS/2.)

       -P password
	      use password to decrypt encrypted	 zipfile  entries  (if	any).
	      THIS  IS	INSECURE!   Many multi-user operating systems provide
	      ways for any user to see the current command line of any	other
	      user; even on stand-alone systems there is always the threat of
	      over-the-shoulder peeking.  Storing the plaintext	 password  as
	      part  of	a  command line in an automated script is even worse.
	      Whenever possible, use the non-echoing, interactive  prompt  to
	      enter  passwords.	  (And where security is truly important, use
	      strong encryption such as Pretty Good Privacy  instead  of  the
	      relatively  weak encryption provided by standard zipfile utili-
	      ties.)

       -q     perform operations quietly (-qq =	 even  quieter).   Ordinarily
	      unzip prints the names of the files it's extracting or testing,
	      the extraction methods, any file or zipfile comments  that  may
	      be  stored in the archive, and possibly a summary when finished
	      with each archive.  The -q[q] options suppress the printing  of
	      some or all of these messages.

       -s     [OS/2,  NT, MS-DOS] convert spaces in filenames to underscores.
	      Since all PC operating systems allow spaces in filenames, unzip
	      by   default  extracts  filenames	 with  spaces  intact  (e.g.,
	      ''EA DATA. SF'').	 This can be awkward, however,	since  MS-DOS
	      in  particular does not gracefully support spaces in filenames.
	      Conversion of spaces to underscores can eliminate the  awkward-
	      ness in some cases.

       -U     (obsolete;  to  be removed in a future release) leave filenames
	      uppercase if created under MS-DOS, VMS, etc.  See -L above.

       -V     retain (VMS) file version numbers.  VMS  files  can  be  stored
	      with  a  version number, in the format file.ext;##.  By default
	      the '';##'' version  numbers  are	 stripped,  but	 this  option
	      allows  them to be retained.  (On file systems that limit file-
	      names to particularly short lengths, the version numbers may be
	      truncated or stripped regardless of this option.)

       -X     [VMS,  Unix,  OS/2,  NT]	restore	 owner/protection info (UICs)
	      under VMS, or user and group  info  (UID/GID)  under  Unix,  or
	      access  control lists (ACLs) under certain network-enabled ver-
	      sions of OS/2 (Warp Server with IBM LAN Server/Requester 3.0 to
	      5.0;  Warp  Connect  with IBM Peer 1.0), or security ACLs under
	      Windows NT.  In most cases this  will  require  special  system
	      privileges,  and	doubling  the option (-XX) under NT instructs
	      unzip to use privileges for extraction;  but  under  Unix,  for
	      example, a user who belongs to several groups can restore files
	      owned by any of those groups, as long as the user IDs match his
	      or  her  own.   Note  that  ordinary file attributes are always
	      restored--this option applies only to optional, extra ownership
	      info available on some operating systems.	 [NT's access control
	      lists do not appear to be especially compatible with OS/2's, so
	      no  attempt  is  made  at	 cross-platform portability of access
	      privileges.  It is not clear under what conditions  this	would
	      ever be useful anyway.]

       -$     [MS-DOS,	OS/2,  NT] restore the volume label if the extraction
	      medium is removable (e.g., a diskette).	Doubling  the  option
	      (-$$)  allows  fixed media (hard disks) to be labelled as well.
	      By default, volume labels are ignored.

       -/ extensions
	      [Acorn only] overrides the extension list supplied by Unzip$Ext
	      environment  variable.  During  extraction, filename extensions
	      that match one of the items in this extension list are  swapped
	      in front of the base name of the extracted file.

       -:     [all  but Acorn, VM/CMS, MVS, Tandem] allows to extract archive
	      members into locations outside of	 the  current  ''  extraction
	      root  folder''.  For  security  reasons, unzip normally removes
	      ''parent dir'' path components  (''../'')	 from  the  names  of
	      extracted	 file.	 This  safety  feature (new for version 5.50)
	      prevents unzip from accidentally writing files to ''sensitive''
	      areas  outside  the active extraction folder tree head.  The -:
	      option lets unzip switch back to	its  previous,	more  liberal
	      behaviour,  to  allow exact extraction of (older) archives that
	      used ''../'' components to create multiple directory  trees  at
	      the  level  of the current extraction folder.  This option does
	      not enable writing explicitly to the  root  directory  (''/'').
	      To  achieve  this, it is necessary to set the extraction target
	      folder to root (e.g. -d / ).  However, when the  -:  option  is
	      specified, it is still possible to implicitly write to the root
	      directory by specifiying enough ''../'' path components  within
	      the zip file.  Use this option with extreme caution.


ENVIRONMENT OPTIONS
       unzip's	default	 behavior  may	be  modified via options placed in an
       environment variable.  This can be done with any	 option,  but  it  is
       probably	 most  useful  with  the -a, -L, -C, -q, -o, or -n modifiers:
       make unzip auto-convert text files by default, make it  convert	file-
       names  from  uppercase systems to lowercase, make it match names case-
       insensitively, make it quieter, or make it always overwrite  or	never
       overwrite  files	 as it extracts them.  For example, to make unzip act
       as quietly as possible, only reporting errors, one would	 use  one  of
       the following commands:

	 Unix Bourne shell:
	      UNZIP=-qq; export UNZIP

	 Unix C shell:
	      setenv UNZIP -qq

	 OS/2 or MS-DOS:
	      set UNZIP=-qq

	 VMS (quotes for lowercase):
	      define UNZIP_OPTS ""-qq""

       Environment  options  are,  in  effect, considered to be just like any
       other command-line options, except that they are effectively the first
       options	on  the command line.  To override an environment option, one
       may use the ''minus operator'' to remove it.  For instance,  to	over-
       ride one of the quiet-flags in the example above, use the command

	   unzip --q[other options] zipfile

       The  first  hyphen is the normal switch character, and the second is a
       minus sign, acting on the q option.  Thus the effect here is to cancel
       one  quantum  of quietness.  To cancel both quiet flags, two (or more)
       minuses may be used:

	   unzip -t--q zipfile
	   unzip ---qt zipfile

       (the two are equivalent).  This may seem awkward or confusing, but  it
       is  reasonably  intuitive:   just  ignore the first hyphen and go from
       there.  It is also consistent with the behavior of Unix nice(1).

       As suggested by the examples above, the	default	 variable  names  are
       UNZIP_OPTS  for	VMS (where the symbol used to install unzip as a for-
       eign command would otherwise be confused with  the  environment	vari-
       able),  and  UNZIP for all other operating systems.  For compatibility
       with zip(1L), UNZIPOPT is also accepted (don't ask).   If  both	UNZIP
       and  UNZIPOPT  are  defined, however, UNZIP takes precedence.  unzip's
       diagnostic option (-v with no zipfile name) can be used to  check  the
       values of all four possible unzip and zipinfo environment variables.

       The  timezone variable (TZ) should be set according to the local time-
       zone in order for the  -f  and  -u  to  operate	correctly.   See  the
       description of -f above for details.  This variable may also be neces-
       sary in order for timestamps on extracted files to be  set  correctly.
       Under  Windows 95/NT unzip should know the correct timezone even if TZ
       is unset, assuming the timezone is correctly set in the Control Panel.

DECRYPTION
       Encrypted  archives  are fully supported by Info-ZIP software, but due
       to United States export restrictions, de-/encryption support might  be
       disabled	 in  your  compiled  binary.   However, since spring 2000, US
       export restrictions have been liberated, and our	 source	 archives  do
       now  include  full  crypt code.	In case you need binary distributions
       with crypt support enabled, see the file	 ''WHERE''  in	any  Info-ZIP
       source  or  binary  distribution for locations both inside and outside
       the US.

       Some compiled versions of unzip may not support decryption.  To	check
       a  version  for	crypt  support,	 either attempt to test or extract an
       encrypted archive, or else check unzip's diagnostic screen (see the -v
       option  above)  for ''[decryption]'' as one of the special compilation
       options.

       As noted above, the -P option may be used to supply a password on  the
       command	line,  but  at	a cost in security.  The preferred decryption
       method  is  simply  to  extract	normally;  if  a  zipfile  member  is
       encrypted,  unzip will prompt for the password without echoing what is
       typed.  unzip continues to use the same password as long as it appears
       to  be  valid,  by testing a 12-byte header on each file.  The correct
       password will always check out against the  header,  but	 there	is  a
       1-in-256	 chance	 that an incorrect password will as well.  (This is a
       security feature of the PKWARE zipfile format; it helps prevent brute-
       force  attacks  that  might  otherwise gain a large speed advantage by
       testing only the header.)  In the case that an incorrect	 password  is
       given  but  it  passes the header test anyway, either an incorrect CRC
       will be generated for the extracted data or else unzip will fail	 dur-
       ing the extraction because the ''decrypted'' bytes do not constitute a
       valid compressed data stream.

       If the first password fails the header check on some file, unzip	 will
       prompt  for another password, and so on until all files are extracted.
       If a password is not known, entering a null password (that is, just  a
       carriage return or ''Enter'') is taken as a signal to skip all further
       prompting.  Only unencrypted files in the archive(s)  will  thereafter
       be  extracted.	(In  fact,  that's  not quite true; older versions of
       zip(1L) and zipcloak(1L) allowed null passwords, so unzip checks	 each
       encrypted  file to see if the null password works.  This may result in
       ''false positives'' and extraction errors, as noted above.)

       Archives encrypted with 8-bit passwords (for example,  passwords	 with
       accented	 European  characters)	may  not  be  portable across systems
       and/or other archivers.	This problem stems from the use	 of  multiple
       encoding	 methods  for such characters, including Latin-1 (ISO 8859-1)
       and OEM code page 850.  DOS PKZIP 2.04g uses the OEM code  page;	 Win-
       dows  PKZIP  2.50 uses Latin-1 (and is therefore incompatible with DOS
       PKZIP); Info-ZIP uses the OEM code page on DOS, OS/2 and Win3.x	ports
       but  Latin-1 everywhere else; and Nico Mak's WinZip 6.x does not allow
       8-bit passwords at all.	UnZip 5.3 (or  newer)  attempts	 to  use  the
       default character set first (e.g., Latin-1), followed by the alternate
       one (e.g., OEM code page) to test passwords.  On	 EBCDIC	 systems,  if
       both  of	 these fail, EBCDIC encoding will be tested as a last resort.
       (EBCDIC is not tested on non-EBCDIC  systems,  because  there  are  no
       known  archivers	 that  encrypt using EBCDIC encoding.)	ISO character
       encodings other than Latin-1 are not supported.

EXAMPLES
       To use unzip to extract all members of the  archive  letters.zip	 into
       the current directory and subdirectories below it, creating any subdi-
       rectories as necessary:

	   unzip letters

       To extract all members of letters.zip into the current directory only:

	   unzip -j letters

       To  test	 letters.zip,  printing	 only  a  summary  message indicating
       whether the archive is OK or not:

	   unzip -tq letters

       To test all zipfiles in the current directory, printing only the	 sum-
       maries:

	   unzip -tq \*.zip

       (The  backslash	before	the  asterisk  is  only required if the shell
       expands wildcards, as in Unix; double  quotes  could  have  been	 used
       instead,	 as  in	 the  source examples below.)  To extract to standard
       output all members of letters.zip whose names end in  .tex,  auto-con-
       verting to the local end-of-line convention and piping the output into
       more(1):

	   unzip -ca letters \*.tex | more

       To extract the binary file paper1.dvi to standard output and  pipe  it
       to a printing program:

	   unzip -p articles paper1.dvi | dvips

       To  extract  all	 FORTRAN and C source files--*.f, *.c, *.h, and Make-
       file--into the /tmp directory:

	   unzip source.zip "*.[fch]" Makefile -d /tmp

       (the double quotes are necessary only in Unix and only if globbing  is
       turned  on).  To extract all FORTRAN and C source files, regardless of
       case (e.g., both *.c and *.C, and any makefile, Makefile, MAKEFILE  or
       similar):

	   unzip -C source.zip "*.[fch]" makefile -d /tmp

       To  extract  any	 such  files  but convert any uppercase MS-DOS or VMS
       names to lowercase and convert the line-endings of all of the files to
       the  local standard (without respect to any files that might be marked
       ''binary''):

	   unzip -aaCL source.zip "*.[fch]" makefile -d /tmp

       To extract only newer versions of the files  already  in	 the  current
       directory,  without  querying  (NOTE:   be careful of unzipping in one
       timezone a zipfile created in another--ZIP archives other  than	those
       created	by  Zip	 2.1  or later contain no timezone information, and a
       ''newer'' file from an eastern timezone may, in fact, be older):

	   unzip -fo sources

       To extract newer versions of the files already in the  current  direc-
       tory  and to create any files not already there (same caveat as previ-
       ous example):

	   unzip -uo sources

       To display a diagnostic screen showing which unzip and zipinfo options
       are  stored  in	environment variables, whether decryption support was
       compiled in, the compiler with which unzip was compiled, etc.:

	   unzip -v

       In the last five examples, assume that UNZIP or UNZIP_OPTS is  set  to
       -q.  To do a singly quiet listing:

	   unzip -l file.zip

       To do a doubly quiet listing:

	   unzip -ql file.zip

       (Note that the ''.zip'' is generally not necessary.)  To do a standard
       listing:

	   unzip --ql file.zip
       or
	   unzip -l-q file.zip
       or
	   unzip -l--q file.zip
       (Extra minuses in options don't hurt.)

TIPS
       The current maintainer, being a lazy sort, finds	 it  very  useful  to
       define  a  pair	of  aliases:  tt for ''unzip -tq'' and ii for ''unzip
       -Z'' (or ''zipinfo'').  One may then simply  type  ''tt	zipfile''  to
       test  an	 archive,  something  that  is worth making a habit of doing.
       With luck unzip will report ''No errors detected in compressed data of
       zipfile.zip,'' after which one may breathe a sigh of relief.

       The maintainer also finds it useful to set the UNZIP environment vari-
       able to ''-aL'' and is tempted to add ''-C''  as	 well.	 His  ZIPINFO
       variable is set to ''-z''.

DIAGNOSTICS
       The  exit  status (or error level) approximates the exit codes defined
       by PKWARE and takes on the following values, except under VMS:

	      0	     normal; no errors or warnings detected.

	      1	     one or more warning errors were  encountered,  but	 pro-
		     cessing  completed	 successfully  anyway.	This includes
		     zipfiles where one or more	 files	was  skipped  due  to
		     unsupported  compression  method  or  encryption with an
		     unknown password.

	      2	     a generic error in	 the  zipfile  format  was  detected.
		     Processing	 may have completed successfully anyway; some
		     broken zipfiles created by other archivers	 have  simple
		     work-arounds.

	      3	     a severe error in the zipfile format was detected.	 Pro-
		     cessing probably failed immediately.

	      4	     unzip was unable to allocate  memory  for	one  or	 more
		     buffers during program initialization.

	      5	     unzip  was unable to allocate memory or unable to obtain
		     a tty to read the decryption password(s).

	      6	     unzip was unable to allocate memory during decompression
		     to disk.

	      7	     unzip  was	 unable	 to  allocate memory during in-memory
		     decompression.

	      8	     [currently not used]

	      9	     the specified zipfiles were not found.

	      10     invalid options were specified on the command line.

	      11     no matching files were found.

	      50     the disk is (or was) full during extraction.

	      51     the end of the ZIP archive was encountered	 prematurely.

	      80     the  user	aborted	 unzip prematurely with control-C (or
		     similar)

	      81     testing or extraction of one or more files failed due to
		     unsupported    compression	   methods   or	  unsupported
		     decryption.

	      82     no files were found due to bad  decryption	 password(s).
		     (If  even	one  file is successfully processed, however,
		     the exit status is 1.)

       VMS interprets standard Unix (or PC) return values as other,  scarier-
       looking	things,	 so  unzip  instead  maps  them into VMS-style status
       codes.  The current mapping is as follows:   1  (success)  for  normal
       exit,  0x7fff0001  for  warning	errors,	 and  (0x7fff000?  +  16*nor-
       mal_unzip_exit_status) for all  other  errors,  where  the  '?'	is  2
       (error)	for  unzip  values 2, 9-11 and 80-82, and 4 (fatal error) for
       the remaining ones (3-8, 50, 51).  In addition, there is a compilation
       option to expand upon this behavior:  defining RETURN_CODES results in
       a human-readable explanation of what the error status means.

BUGS
       Multi-part archives are not yet supported, except in conjunction	 with
       zip.   (All  parts  must	 be  concatenated together in order, and then
       ''zip -F'' must be performed on the concatenated archive in  order  to
       ''fix''	it.)   This  will  definitely  be corrected in the next major
       release.

       Archives read from standard input are not yet supported,	 except	 with
       funzip  (and  then  only	 the  first  member  of	 the  archive  can be
       extracted).

       Archives encrypted with 8-bit passwords (e.g., passwords with accented
       European	 characters)  may not be portable across systems and/or other
       archivers.  See the discussion in DECRYPTION above.

       unzip's -M (''more'') option tries  to  take  into  account  automatic
       wrapping	 of long lines. However, the code may fail to detect the cor-
       rect wrapping locations. First, TAB characters  (and  similar  control
       sequences)  are	not  taken into account, they are handled as ordinary
       printable characters.  Second, depending on the	actual	system	/  OS
       port, unzip may not detect the true screen geometry but rather rely on
       "commonly used" default dimensions.   The  correct  handling  of	 tabs
       would  require  the implementation of a query for the actual tabulator
       setup on the output console.

       Dates, times and permissions of stored directories  are	not  restored
       except  under  Unix. (On Windows NT and successors, timestamps are now
       restored.)

       [MS-DOS] When extracting or testing files from an archive on a  defec-
       tive  floppy  diskette,	if  the	 ''Fail'' option is chosen from DOS's
       ''Abort, Retry, Fail?'' message, older versions of unzip may hang  the
       system,	requiring  a  reboot.	This problem appears to be fixed, but
       control-C (or control-Break) can still be used to terminate unzip.

       Under DEC Ultrix, unzip would sometimes fail  on	 long  zipfiles	 (bad
       CRC,  not  always  reproducible).  This was apparently due either to a
       hardware bug (cache memory) or an operating system bug (improper	 han-
       dling  of  page faults?).  Since Ultrix has been abandoned in favor of
       Digital Unix (OSF/1), this may not be an issue anymore.

       [Unix] Unix special files such as FIFO buffers  (named  pipes),	block
       devices	and character devices are not restored even if they are some-
       how represented in the zipfile, nor are	hard-linked  files  relinked.
       Basically  the  only  file  types restored by unzip are regular files,
       directories and symbolic (soft) links.

       [OS/2] Extended attributes for existing directories are	only  updated
       if  the	-o (''overwrite all'') option is given.	 This is a limitation
       of the operating system; because directories only have a creation time
       associated with them, unzip has no way to determine whether the stored
       attributes are newer or older than those on disk.   In  practice	 this
       may  mean  a  two-pass approach is required:  first unpack the archive
       normally (with or without freshening/updating  existing	files),	 then
       overwrite just the directory entries (e.g., ''unzip -o foo */'').

       [VMS]  When extracting to another directory, only the [.foo] syntax is
       accepted for the -d option; the simple Unix  foo	 syntax	 is  silently
       ignored (as is the less common VMS foo.dir syntax).

       [VMS] When the file being extracted already exists, unzip's query only
       allows skipping, overwriting or renaming; there should additionally be
       a choice for creating a new version of the file.	 In fact, the ''over-
       write'' choice does create a new version; the old version is not over-
       written or deleted.

SEE ALSO
       funzip(1L),  zip(1L),  zipcloak(1L),  zipgrep(1L),  zipinfo(1L),	 zip-
       note(1L), zipsplit(1L)

URL
       The Info-ZIP home page is currently at
	   http://www.info-zip.org/pub/infozip/
       or
	   ftp://ftp.info-zip.org/pub/infozip/ .

AUTHORS
       The primary Info-ZIP authors (current semi-active members of the	 Zip-
       Bugs  workgroup)	 are:	Onno  van der Linden (Zip); Christian Spieler
       (UnZip maintenance coordination, VMS, MS-DOS, Win32, shared code, gen-
       eral  Zip and UnZip integration and optimization); Mike White (Windows
       GUI, Windows DLLs);  Kai	 Uwe  Rommel  (OS/2);  Paul  Kienitz  (Amiga,
       Win32); Chris Herborth (BeOS, QNX, Atari); Jonathan Hudson (SMS/QDOS);
       Sergio Monesi (Acorn RISC OS); Harald Denker (Atari, MVS);  John	 Bush
       (Solaris, Amiga); Hunter Goatley (VMS); Steve Salisbury (Win32); Steve
       Miller (Windows CE GUI), Johnny Lee (MS-DOS, Win32);  and  Dave	Smith
       (Tandem NSK).

       The  following  people were former members of the Info-ZIP development
       group and provided major contributions to key  parts  of	 the  current
       code:  Greg  ''Cave  Newt''  Roelofs  (UnZip, unshrink decompression);
       Jean-loup Gailly (deflate compression); Mark Adler (inflate decompres-
       sion, fUnZip).

       The  author of the original unzip code upon which Info-ZIP's was based
       is Samuel H. Smith; Carl Mascott did the first Unix port; and David P.
       Kirschbaum  organized  and  led	Info-ZIP in its early days with Keith
       Petersen hosting the original mailing list at WSMR-SimTel20.  The full
       list  of	 contributors to UnZip has grown quite large; please refer to
       the CONTRIBS file in the UnZip source distribution  for	a  relatively
       complete version.

VERSIONS
       v1.2   15 Mar 89	  Samuel H. Smith
       v2.0    9 Sep 89	  Samuel H. Smith
       v2.x   fall 1989	  many Usenet contributors
       v3.0    1 May 90	  Info-ZIP (DPK, consolidator)
       v3.1   15 Aug 90	  Info-ZIP (DPK, consolidator)
       v4.0    1 Dec 90	  Info-ZIP (GRR, maintainer)
       v4.1   12 May 91	  Info-ZIP
       v4.2   20 Mar 92	  Info-ZIP (Zip-Bugs subgroup, GRR)
       v5.0   21 Aug 92	  Info-ZIP (Zip-Bugs subgroup, GRR)
       v5.01  15 Jan 93	  Info-ZIP (Zip-Bugs subgroup, GRR)
       v5.1    7 Feb 94	  Info-ZIP (Zip-Bugs subgroup, GRR)
       v5.11   2 Aug 94	  Info-ZIP (Zip-Bugs subgroup, GRR)
       v5.12  28 Aug 94	  Info-ZIP (Zip-Bugs subgroup, GRR)
       v5.2   30 Apr 96	  Info-ZIP (Zip-Bugs subgroup, GRR)
       v5.3   22 Apr 97	  Info-ZIP (Zip-Bugs subgroup, GRR)
       v5.31  31 May 97	  Info-ZIP (Zip-Bugs subgroup, GRR)
       v5.32   3 Nov 97	  Info-ZIP (Zip-Bugs subgroup, GRR)
       v5.4   28 Nov 98	  Info-ZIP (Zip-Bugs subgroup, SPC)
       v5.41  16 Apr 00	  Info-ZIP (Zip-Bugs subgroup, SPC)
       v5.42  14 Jan 01	  Info-ZIP (Zip-Bugs subgroup, SPC)
       v5.5   17 Feb 02	  Info-ZIP (Zip-Bugs subgroup, SPC)
       v5.51  22 May 04	  Info-ZIP (Zip-Bugs subgroup, SPC)



Info-ZIP		     22 May 2004 (v5.51)		    UNZIP(1L)


UNIX/Linux commands referenced on this page:
  1. test
  2. file
  3. ksh
  4. more
  5. as
  6. which
  7. write
  8. at
  9. time
  10. info
  11. date
  12. ftp
  13. find
  14. display
  15. convert
  16. zip
  17. zipinfo
  18. restore
  19. top
  20. rename
  21. script
  22. who
  23. groups
  24. clear
  25. enable
  26. make
  27. cancel
  28. install
  29. last
  30. sort
  31. tty
  32. expand
  33. funzip
  34. true
  35. setup
  36. floppy
  37. less
  38. refer