unzip man page on Peanut

Man page or keyword search:  
man Server   7435 pages
apropos Keyword Search (all sections)
Output format
Peanut logo
[printable version]



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), cre‐
       ates ZIP	 archives;  both  programs  are	 compatible  with
       archives created by PKWARE’s PKZIP and PKUNZIP for MS‐DOS,
       but in many cases the program options or default behaviors
       differ.

ARGUMENTS
       file[.zip]
	      Path of the ZIP archive(s).  If the file specifica‐
	      tion is a wildcard, each matching file is processed
	      in  an order determined by the operating system (or
	      file system).  Only the filename can be a wildcard;
	      the  path	 itself cannot.	 Wildcard expressions are
	      similar to Unix egrep(1) (regular) expressions  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 other‐
	      wise be interpreted or modified  by  the	operating
	      system,  particularly  under  Unix and VMS.)  If no
	      matches are found, the specification is assumed  to
	      be  a literal filename; and if that also fails, the
	      suffix .zip is appended.	Note that self‐extracting
	      ZIP  files  are  supported,  as  with any other ZIP
	      archive; just specify  the  .exe	suffix	(if  any)
	      explicitly.

Info‐ZIP	      16 April 2000 (v5.41)			1

UNZIP(1L)						UNZIP(1L)

       [file(s)]
	      An  optional  list  of  archive  members to be pro‐
	      cessed, separated by spaces.   (VMS  versions  com‐
	      piled  with  VMSCLI defined must delimit files with
	      commas instead.  See ‐v in OPTIONS below.)  Regular
	      expressions (wildcards) may be used to match multi‐
	      ple members; see above.  Again, be  sure	to  quote
	      expressions  that	 would	otherwise  be expanded or
	      modified by the operating system.

       [‐x xfile(s)]
	      An optional list of archive members to be	 excluded
	      from  processing.	  Since wildcard 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 recre‐
	      ated in the current directory; the ‐d option allows
	      extraction in an arbitrary directory (always assum‐
	      ing 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), immedi‐
	      ately after the zipfile specification,  or  between
	      the  file(s)  and	 the  ‐x  option.  The option and
	      directory may be	concatenated  without  any  white
	      space  between  them,  but note that this may cause
	      normal shell behavior to be suppressed.  In partic‐
	      ular, ‘‘‐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  com‐
	      mand 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).

Info‐ZIP	      16 April 2000 (v5.41)			2

UNZIP(1L)						UNZIP(1L)

       ‐c     extract files  to	 stdout/screen	(‘‘CRT’’).   This
	      option  is similar to the ‐p option except that the
	      name of each file is printed as  it  is  extracted,
	      the  ‐a option is allowed, and ASCII‐EBCDIC conver‐
	      sion is  automatically  performed	 if  appropriate.
	      This  option  is	not  listed  in	 the  unzip usage
	      screen.

       ‐f     freshen existing files, i.e.,  extract  only  those
	      files that already exist on disk and that are newer
	      than the disk copies.   By  default  unzip  queries
	      before  overwriting,  but the ‐o option may be used
	      to suppress the  queries.	  Note	that  under  many
	      operating	 systems,  the	TZ (timezone) 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 compare the  two.   A  typical  TZ
	      value  is	 ‘‘PST8PDT’’  (US Pacific time with auto‐
	      matic  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 indi‐
	      vidual  file comments (if any) are displayed.  If a
	      file was archived from a	single‐case  file  system
	      (for  example,  the old MS‐DOS FAT file system) and
	      the ‐L option was given, the filename is	converted
	      to lowercase and is prefixed 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 corre‐
	      sponds to zip’s ‐go option except that  it  can  be
	      used   on	  wildcard  zipfiles  (e.g.,  ‘‘unzip  ‐T

Info‐ZIP	      16 April 2000 (v5.41)			3

UNZIP(1L)						UNZIP(1L)

	      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 informa‐
	      tion 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  diagnostic
	      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  operat‐
	      ing  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 vari‐
	      ables  that  might  do  the  same	 (see ENVIRONMENT
	      OPTIONS below).  As a modifier it works in conjunc‐
	      tion  with other options (e.g., ‐t) to produce more
	      verbose or debugging output; this is not yet  fully
	      implemented but will be in future releases.

       ‐z     display only the archive comment.

MODIFIERS
       ‐a     convert  text  files.   Ordinarily  all  files  are
	      extracted exactly as they are stored (as ‘‘binary’’
	      files).	The  ‐a option causes files identified by
	      zip as text files (those with the ‘t’ label in zip‐
	      info listings, rather than ‘b’) to be automatically
	      extracted as such, converting line endings, end‐of‐
	      file  characters	and  the  character set itself as
	      necessary.  (For example, Unix files use line feeds
	      (LFs) for end‐of‐line (EOL) and have no end‐of‐file
	      (EOF)  marker;  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

Info‐ZIP	      16 April 2000 (v5.41)			4

UNZIP(1L)						UNZIP(1L)

	      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, regard‐
	      less of the supposed file type.

       ‐b     [general] treat all files as binary (no  text  con‐
	      versions).  This is a shortcut for ‐‐‐a.

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

       ‐b     [VMS] auto‐convert binary files (see ‐a  above)  to
	      fixed‐length, 512‐byte record format.  Doubling the
	      option (‐bb) forces all files to	be  extracted  in
	      this format.

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

       ‐C     match filenames case‐insensitively.   unzip’s  phi‐
	      losophy  is  ‘‘you  get what you ask for’’ (this is
	      also responsible for the ‐L/‐U change; see the rel‐
	      evant  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 plat‐
	      forms,  unzip’s  default	behavior is to match both
	      wildcard and  literal  filenames	case‐sensitively.
	      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 cor‐
	      respond  to  the	behavior  of  many  other operat‐
	      ing/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

Info‐ZIP	      16 April 2000 (v5.41)			5

UNZIP(1L)						UNZIP(1L)

	      extension from stored filenames.

       ‐F     [Unix    only,	and   only   if	  compiled   with
	      ACORN_FTYPE_NFS defined] translate filetype  infor‐
	      mation 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 recreated;  all  files  are  deposited  in  the
	      extraction directory (by default, the current one).

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

       ‐J     [MacOS only] ignore MacOS extra fields.  All Macin‐
	      tosh   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 identi‐
	      cal to the old behavior with the ‐U  option,  which
	      is  now  obsolete	 and  will be removed in a future
	      release.)	  Depending  on	  the	archiver,   files
	      archived	under  single‐case file systems (VMS, old
	      MS‐DOS FAT, etc.) may be	stored	as  all‐uppercase
	      names;  this  can	 be  ugly  or  inconvenient  when
	      extracting to a case‐preserving file system such as
	      OS/2  HPFS  or  a	 case‐sensitive one such as under
	      Unix.  By default unzip  lists  and  extracts  such
	      filenames	 exactly  as  they’re  stored  (excepting
	      truncation, conversion of	 unsupported  characters,
	      etc.);  this  option  causes the names of all files
	      from certain systems to be converted to  lowercase.

       ‐M     pipe  all	 output through an internal pager similar
	      to the  Unixmore(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‐

Info‐ZIP	      16 April 2000 (v5.41)			6

UNZIP(1L)						UNZIP(1L)

	      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 avail‐
	      able  lines on the screen is not detected, in which
	      case unzip assumes the height is 24 lines.

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

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

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

       ‐P password
	      use  password  to decrypt encrypted zipfile entries
	      (if any).	 THIS IS INSECURE!  Many multi‐user oper‐
	      ating  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 utilities.)

       ‐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

Info‐ZIP	      16 April 2000 (v5.41)			7

UNZIP(1L)						UNZIP(1L)

	      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 sup‐
	      port  spaces in filenames.  Conversion of spaces to
	      underscores can eliminate the awkwardness	 in  some
	      cases.

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

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

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

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

       ‐/ extensions
	      [Acorn only] overrides the extension list	 supplied
	      by  Unzip$Ext  environment variable. During extrac‐
	      tion, filename extensions that  match  one  of  the

Info‐ZIP	      16 April 2000 (v5.41)			8

UNZIP(1L)						UNZIP(1L)

	      items  in	 this extension list are swapped in front
	      of the base name of the extracted file.

ENVIRONMENT OPTIONS
       unzip’s default	behavior  may  be  modified  via  options
       placed  in an environment variable.  This can be done with
       any option, but it is probably most useful  with	 the  ‐a,
       ‐L,  ‐C, ‐q, ‐o, or ‐n modifiers:  make unzip auto‐convert
       text files by default,  make  it	 convert  filenames  from
       uppercase  systems to lowercase, make it match names case‐
       insensitively, make it quieter, or make	it  always  over‐
       write  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 com‐
       mands:

	   UNZIP=‐qq; export UNZIP    Unix Bourne shell
	   setenv UNZIP ‐qq	      Unix C shell
	   set UNZIP=‐qq	      OS/2 or MS‐DOS
	   define UNZIP_OPTS "‐qq"    VMS (quotes for lowercase)

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

	   unzip ‐‐q[other options] zipfile

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

	   unzip ‐t‐‐q zipfile
	   unzip ‐‐‐qt zipfile

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

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

Info‐ZIP	      16 April 2000 (v5.41)			9

UNZIP(1L)						UNZIP(1L)

       The  timezone variable (TZ) should be set according to the
       local timezone in order for the ‐f and ‐u to operate  cor‐
       rectly.	 See  the  description	of  ‐f above for details.
       This variable may also be necessary in  order  for  times‐
       tamps  on extracted files to be set correctly.  Under Win‐
       dows 95/NT unzip should know the correct timezone even  if
       TZ is unset, assuming the timezone is correctly set in the
       Control Panel.

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

       Some compiled versions of unzip may  not	 support  decryp‐
       tion.   To  check  a  version  for  crypt  support, either
       attempt to test or extract an encrypted archive,	 or  else
       check  unzip’s diagnostic screen (see the ‐v option above)
       for ‘‘[decryption]’’ as one  of	the  special  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 nor‐
       mally; 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 incor‐
       rect password is given but it passes the header test  any‐
       way,  either  an	 incorrect  CRC will be generated for the
       extracted data or else unzip will fail during the  extrac‐
       tion  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

Info‐ZIP	      16 April 2000 (v5.41)		       10

UNZIP(1L)						UNZIP(1L)

       passwords, so unzip checks each encrypted file to  see  if
       the null password works.	 This may result in ‘‘false posi‐
       tives’’ and extraction errors, as noted above.)

       Archives encrypted  with	 8‐bit	passwords  (for	 example,
       passwords  with	accented  European characters) may not be
       portable across	systems	 and/or	 other	archivers.   This
       problem	stems  from  the use of multiple encoding methods
       for such characters, including Latin‐1  (ISO  8859‐1)  and
       OEM  code  page	850.   DOS  PKZIP 2.04g uses the OEM code
       page; Windows PKZIP 2.50 uses Latin‐1  (and  is	therefore
       incompatible  with  DOS PKZIP); Info‐ZIP uses the OEM code
       page on DOS, OS/2 and Win3.x ports but Latin‐1  everywhere
       else; and Nico Mak’s WinZip 6.x does not allow 8‐bit pass‐
       words at all.  UnZip 5.3 attempts to use the default char‐
       acter 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.   (Since  there  are	no  known
       archivers  that	encrypt	 using EBCDIC encoding, EBCDIC is
       not tested on non‐EBCDIC systems.)  ISO	character  encod‐
       ings other than Latin‐1 are not supported.

EXAMPLES
       To  use	unzip  to extract all members of the archive let‐
       ters.zip into the  current  directory  and  subdirectories
       below it, creating any subdirectories as necessary:

	   unzip letters

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

	   unzip ‐j letters

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

	   unzip ‐tq letters

       To  test	 all  zipfiles in the current directory, printing
       only the summaries:

	   unzip ‐tq zip

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

	   unzip ‐ca letters tex | more

Info‐ZIP	      16 April 2000 (v5.41)		       11

UNZIP(1L)						UNZIP(1L)

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

	   unzip ‐p articles paper1.dvi | dvips

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

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

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

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

       To extract any such files but convert any uppercase MS‐DOS
       or VMS names to lowercase and convert the line‐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 cur‐
       rent directory and to create any files not  already  there
       (same caveat as previous example):

	   unzip ‐uo sources

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

	   unzip ‐v

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

	   unzip ‐l file.zip

       To do a doubly quiet listing:

	   unzip ‐ql file.zip

Info‐ZIP	      16 April 2000 (v5.41)		       12

UNZIP(1L)						UNZIP(1L)

       (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 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 envi‐
       ronment variable to ‘‘‐aL’’ and is tempted to  add  ‘‘‐C’’
       as well.	 His ZIPINFO variable is set to ‘‘‐z’’.

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

	      0	     normal; no errors or warnings detected.

	      1	     one or more warning errors were encountered,
		     but processing completed  successfully  any‐
		     way.   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.	 Processing probably failed imme‐
		     diately.

	      4	     unzip was unable to allocate memory for  one
		     or	 more  buffers during program initializa‐
		     tion.

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

Info‐ZIP	      16 April 2000 (v5.41)		       13

UNZIP(1L)						UNZIP(1L)

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

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

	      8	     [currently not used]

	      9	     the specified zipfiles were not found.

	      10     invalid options were specified on	the  com‐
		     mand line.

	      11     no matching files were found.

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

	      51     the end of the ZIP archive	 was  encountered
		     prematurely.

	      80     the user aborted unzip prematurely with con‐
		     trol‐C (or similar)

	      81     testing or extraction of one or  more  files
		     failed  due to unsupported compression meth‐
		     ods or unsupported decryption.

	      82     no files were found due  to  bad  decryption
		     password(s).   (If even one file is success‐
		     fully 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 con‐
       junction	 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).

Info‐ZIP	      16 April 2000 (v5.41)		       14

UNZIP(1L)						UNZIP(1L)

       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 is overly simplistic  in  its
       handling	 of  screen  output;  as noted above, it fails to
       detect the wrapping of long lines and  may  thereby  cause
       lines  at  the top of the screen to be scrolled off before
       being read.  unzip should detect and treat each occurrence
       of   line‐wrap  as  one	additional  line  printed.   This
       requires knowledge of the screen’s width as  well  as  its
       height.	 In addition, unzip should detect the true screen
       geometry on all systems.

       Dates, times and permissions of stored directories are not
       restored except under Unix.

       [MS‐DOS]	 When extracting or testing files from an archive
       on a defective 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 con‐
       trol‐Break) can still be used to terminate unzip.

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

       [Unix]  Unix  special  files  such  as FIFO buffers (named
       pipes),	block  devices	and  character	devices	 are  not
       restored	 even if they are somehow represented in the zip‐
       file, 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 fresh‐
       ening/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).

Info‐ZIP	      16 April 2000 (v5.41)		       15

UNZIP(1L)						UNZIP(1L)

       [VMS]  When  the	 file  being  extracted	 already  exists,
       unzip’s	query only allows skipping, overwriting or renam‐
       ing; there should additionally be a choice for creating	a
       new  version  of	 the  file.   In  fact, the ‘‘overwrite’’
       choice does create a new version; the old version  is  not
       overwritten or deleted.

SEE ALSO
       funzip(1L),   zip(1L),	zipcloak(1L),  zipgrep(1L),  zip‐
       info(1L), zipnote(1L), zipsplit(1L)

URL
       The Info‐ZIP home page  is  currently  at  ftp://ftp.info‐
       zip.org/pub/infozip/ .

AUTHORS
       The  primary Info‐ZIP authors (current semi‐active members
       of  the	Zip‐Bugs  workgroup)  are:   Greg  ‘‘Cave  Newt’’
       Roelofs	(UnZip);  Onno	van  der  Linden (Zip); Jean‐loup
       Gailly (compression); Mark Adler (decompression,	 fUnZip);
       Christian  Spieler (UnZip maintance coordination, VMS, MS‐
       DOS, Windows 95, NT, shared code, general  Zip  and  UnZip
       integration  and	 optimization);	 Mike White (Windows GUI,
       Windows DLLs); Kai Uwe Rommel (OS/2); Paul Kienitz (Amiga,
       Windows	95);  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  (Windows	 95,  NT);  Steve
       Miller  (Windows	 CE GUI), Johnny Lee (MS‐DOS, Windows 95,
       NT); and Dave Smith (Tandem NSK).  The author of the orig‐
       inal  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)

Info‐ZIP	      16 April 2000 (v5.41)		       16

UNZIP(1L)						UNZIP(1L)

       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)

Info‐ZIP	      16 April 2000 (v5.41)		       17

[top]

List of man pages available for Peanut

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net