Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

unzip (1)

Name

unzip - extract, list, or test compressed files in a ZIP archive.

Synopsis

unzip [ unzip_options ] [ file[.zip] ] [ member ... ]
unzip -Z [ zipinfo_options ] [ file[.zip] ] [ member ... ]

Description

UNZIP(1)                    General Commands Manual                   UNZIP(1)



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

SYNOPSIS
       unzip [ unzip_options ] [ file[.zip] ] [ member ... ]
       unzip -Z [ zipinfo_options ] [ file[.zip] ] [ member ... ]

DESCRIPTION
       UnZip extracts, lists, or tests files in a ZIP archive (an archive for-
       mat commonly used on many different  systems).   The  default  behavior
       (with  no options) is to extract into the current directory (and subdi-
       rectories below it) all files from the specified ZIP archive.   A  com-
       panion program, Zip, creates ZIP archives.

       Info-ZIP  UnZip  and  Zip  were intended to be compatible with archives
       created by PKWARE's PKZIP and PKUNZIP programs (originally for MS-DOS),
       but  in  many  cases  the  program options or default behaviors differ.
       Nowadays, many other programs are available which  work  with  ZIP  ar-
       chives.

       Note: Beginning with UnZip version 6.1, the old command-line parser has
       been replaced by one like the one used in Zip (version 3.0 and  later).
       One  significant  change  is  that  option negation now uses a TRAILING
       hyphen ("-"), so, for example, -B- negates the -B option.  This  change
       was made because a double hyphen ("--") now introduces a long option.

       To display the basic built-in help, use the command:
           unzip -h
       To display the extended built-in help, use the command:
           unzip -hh
       The built-in help may be more current than this manual page, especially
       between full product releases.

       To list all available options for a particular UnZip program,  use  the
       command:
           unzip --show-options
       This  report  will  not include any options which are available only on
       other system types, or options which must be enabled at build-time  but
       were not enabled in the particular UnZip program being used.

       [VMS]  On  VMS,  alternate program editions with VMS-style command-line
       interfaces are also available.  For details, see the VMS-specific docu-
       mentation.

ARGUMENTS
       file[.zip]
              File path/name of a ZIP archive.  A wildcard name may be used to
              specify multiple ZIP archives to be processed  in  one  command.
              On  VMS  systems,  any  of  the  standard wildcards for a direc-
              tory/file specification may be used: "...",  "*",  or  "%"  (or,
              since  VMS  V7.2, "?").  On non-VMS systems, a wildcard name may
              be used only in the filename part of the file specification, not
              in  the  directory part, and, on Unix, characters which are spe-
              cial to the shell must be escaped or quoted to protect them from
              processing  by  the  shell.   If  a  wildcard is used, then each
              matching archive file is processed in an order determined by the
              operating  system  or  shell (or file system).  Non-VMS wildcard
              expressions are similar to those supported (for  "globbing")  in
              commonly used Unix shells (csh, ksh, sh, and so on) and may con-
              tain:

              *      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 ("^") 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.  To specify a literal  left  bracket,
                     use the three-character sequence "[[]".

              If  no  wildcard  matches  are  found, then the specification is
              assumed to be a literal filename.  If that also fails, then  the
              suffix  ".zip" and/or ".ZIP" is appended, and the resulting name
              is tried.  (For this reason, if a non-existent  file  is  speci-
              fied,  then  the resulting error message may mention these other
              names with their ".zip" or ".ZIP" suffixes.)

              Note that a ".zip" or ".ZIP" name ending on an archive is merely
              a convention, not a requirement.  For example, a self-extracting
              ZIP archive named "fred" or "fred.exe" could be processed as  if
              it  were  an ordinary archive; just specify the actual file name
              with its actual name ending (if any), whatever that may be.

              Strictly speaking, an archive name is optional, but, except in a
              special  case  like "unzip -v", it's difficult to do much useful
              work without specifying an archive.

       member ...
              An optional list of archive members to be  processed,  separated
              by  spaces.   If  no  member list is specified, then all archive
              members are processed.  Wildcard patterns (like those  used  for
              an  archive  file  name on Unix, described above) may be used to
              match multiple members.  Again, be  sure  to  quote  expressions
              that  would  otherwise  be expanded or modified by the operating
              system or shell.

              On Mac OS X systems, file attributes, a resource fork, and simi-
              lar  data may be stored in a separate AppleDouble archive member
              which has a "._" name prefix.  When restoring  files  with  such
              attributes  (no -J/--junk-attrs option, and the destination file
              system supports such attributes), if the user specifies only the
              main  archive member, then UnZip should automatically handle the
              corresponding AppleDouble archive member.  If -J/--junk-attrs is
              specified,  or the destination file system does not support such
              file attributes (so that an AppleDouble archive member  will  be
              stored as a separate file), then AppleDouble archive members are
              not handled automatically, and the user  must  specify  patterns
              which  explicitly  include  any desired AppleDouble archive mem-
              bers.

              On VMS systems, the wildcard rules used for archive members  are
              the  same  as on Unix systems.  VMS wildcard rules are used only
              for archive file specifications, not  for  archive  member  pat-
              terns.

OPTIONS
       UnZip's  usage summary ("unzip -h") is kept short to try to accommodate
       small terminal/emulator screens,  so  it's  normally  incomplete.   The
       option list below should be complete.

OPTIONS (ZipInfo Mode)
       -Z
       --zipinfo-mode
              ZipInfo  mode.   If  the first option on the command line is -Z,
              then the program runs in ZipInfo mode.   Remaining  options  are
              interpreted as ZipInfo options.  See the zipinfo manual page for
              a description of those options.

OPTIONS (Primary Mode)
       Options in this group (-c -f -h -l -p -T -t -u -v -vq -z)  specify  the
       primary  mode  of  operation  of UnZip.  Only one of these primary mode
       options may be specified.

       -c
       --to-stdout
              Primary Mode.  Extract files to stdout/screen.  This  option  is
              similar  to  the  -p option except that the name of each file is
              displayed as it is extracted, and  the  -a  option  is  allowed,
              which  can  provide  automatic  ASCII-EBCDIC  conversion,  where
              appropriate.

       -f
       --freshen
              Primary Mode.  Freshen existing files.  That  is,  extract  only
              those  files  that already exist on disk and that are newer than
              the disk copies.  By default,  UnZip  queries  the  user  before
              overwriting,  but  the  -o  option  may  be used to suppress the
              queries.  Note that on many operating systems, the TZ (timezone)
              environment   variable  must  be  set  correctly  in  order  for
              -f/--freshen and -u/--update to work  properly.   (On  Unix  the
              variable  is  usually  set automatically.)  The reasons for this
              are somewhat subtle but have to do with the differences  between
              DOS-format  file times (always local time) and Unix-format times
              (always UTC) and the necessity to compare the two.  A typical TZ
              value  is  "PST8PDT"  (US Pacific time with automatic adjustment
              for Daylight Saving Time).

       -h
       --help
              Primary Mode.  Display brief (roughly 24 lines)  usage  instruc-
              tions.  See also -hh.

       -hh
       --long-help
              Primary  Mode.   Display  extended  help  (more  complete  usage
              instructions).  See also -h.

       -l
       --list
              Primary Mode.  List archive members.  By default, a brief format
              is used, which includes the following items: member name, uncom-
              pressed file size ("Length"), and modification date-time of  the
              member.  A summary is included at the end of the report, showing
              total size and count for all the members in the report.   Speci-
              fying a member list limits the report to those members.

              Adding  -v  (--verbose)  to  an "unzip -l" command line adds the
              following items to the report:  compression  method,  compressed
              size ("Size"), compression ratio, and 32-bit CRC.

              In  contrast  to some other programs, UnZip does not include the
              12-byte encryption header in the compressed size  values  for  a
              Traditionally  encrypted member.  Therefore, compressed size and
              compression  ratio  figures  are  independent  of  the  member's
              encryption  status and show the correct compression performance.
              (The complete size of the encrypted compressed data  stream  for
              archive members is reported by the more verbose ZipInfo reports.
              See the separate zipinfo manual page.)

              If UnZip was built with OS2_EAS enabled, then the -l report also
              includes  the sizes of stored OS/2 extended attributes (EAs) and
              OS/2 access control lists (ACLs).  In addition, the archive com-
              ment and individual member comments (if any) are displayed.

              If a file was archived from a single-case file system (for exam-
              ple, the old MS-DOS FAT file  system)  and  the  -L  option  was
              given,  then the filename is converted to lowercase and is shown
              prefixed with a caret (^).

              Note: If only -v (--verbose) is specified with an archive  name,
              then  UnZip  acts  as  if "-l -v" were specified, and a detailed
              listing is generated.

       --license
       Primary Mode.  Display the Info-ZIP license.

       -p
       --pipe-to-stdout
              Primary Mode.  Extract files to stdout (pipe).  Only the  actual
              file  data for the members are sent to stdout (no file names, or
              other information, as would be displayed with -c), and the files
              are  always  extracted in binary format, just as they are stored
              (with no line-ending or ASCII-EBCDIC conversions).

       -T
       --timestamp-new
              Primary Mode.  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  archives  (for
              example, "unzip -T '*.zip'") and may be faster.

       -t
       --test
              Primary  Mode.   Test  archive members.  Testing means that each
              archive member is extracted in memory (expanding and decrypting,
              as  needed),  but  not  written  to  a  file.  The resulting CRC
              (cyclic redundancy check, an enhanced checksum) of the extracted
              data is then compared with the original file's stored CRC value,
              and an error message is emitted if a CRC mismatch is detected.

              Adding -v to -t adds some diagnostic information to  the  report
              for archive members with LZMA or PPMd compression.

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

       -v
       --verbose
              Primary mode (when alone) or option.  When  used  as  a  primary
              mode (alone), and no archive is specified, an "unzip -v" command
              generates a report showing the program version,  build  options,
              and relevant environment variables.

              When  used with some other primary mode option, -v can make out-
              put more verbose.

              If no other primary mode is specified, and an archive is  speci-
              fied,  then  UnZip  acts  as  if  "-l  -v" were specified, and a
              detailed listing is generated.  See -l.

       --version
       Primary Mode.  Display the program version, build options, and relevant
              environment variables.

              Currently, --version is implemented as a synonym  for  -v/--ver-
              bose,  so,  for  proper  operation, it must be specified with no
              other options.

       -vq
       --quick-version
              Primary  mode.   Display  a  brief  (one-line)  program  version
              report.

       -z
       --zipfile-comment
              Primary mode.  Display only the archive comment.

OPTIONS (Ordinary)
       -0
       --no-char-set
              Do not transform FAT/NTFS names.  By default, a particular char-
              acter mapping (CP850) is applied to the names of archive members
              which  originated  on a FAT or NTFS file system (typically on an
              MS-DOS or Windows system).  This can cause unexpected characters
              in  extracted  file names if the corresponding (inverse) mapping
              was   not   used   when   the   archive   was   created.    With
              -0/--no-char-set,  the extracted file name should agree with the
              name stored in the archive.

              On Unix (or BeOS), -0/--no-char-set  effectively  overrides  any
              -I/--iso-char-set  or -O/--oem-char-set option which may also be
              specified.

       -2
       --force-ods2
              [VMS] Convert extracted file  names  to  ODS2-compatible  names,
              even  on  an  ODS5  file system.  By default, if the destination
              file system is ODS5, case is preserved, and extended  file  name
              characters are caret-escaped as needed, while if the destination
              file system is ODS2, ODS2-invalid  characters  are  replaced  by
              underscores.

       -A
       --api-help
              [DLL,  object library] Print extended help for the DLL or object
              library application programming interface (API).

       -a
       --ascii
              Convert text files.  Ordinarily, all files are extracted exactly
              as  they  are stored, byte-for-byte.  With -a, line endings in a
              text file are adjusted to the local  standard  as  the  file  is
              extracted.  When appropriate, ASCII<-->EBCDIC conversion is also
              done.

              Zip  (or  a  similar  archiving  program)  identifies  files  as
              "binary" or "text" when they are archived.  (A short-format Zip-
              Info report denotes a binary file with a "b", and  a  text  file
              with a "t".)  Zip's identification of text files may not be per-
              fect, so UnZip prints "[binary]" or "[text]" as a  visual  check
              for  each  file  it extracts with -a.  The -aa option forces all
              files to be extracted (and converted) as text, regardless of the
              supposed file type.

              [VMS]  On VMS, for archives with VMS attribute information (made
              with "zip -V" or "ZIP /VMS"),  files  are  always  created  with
              their   original  record  formats.   For  archives  without  VMS
              attribute information (not made with  "zip -V"  or  "ZIP /VMS"),
              all  files  are  normally  created with Stream_LF record format.
              With -a, text files are normally  created  with  variable-length
              record format, but adding -S gives them Stream_LF record format.
              With -aa, all files are treated as text files.  See also -b  and
              -S.

       -B
       --backup
              [When  built with UNIXBACKUP enabled] Save a backup copy of each
              overwritten file.  The backup file gets the name of  the  target
              file with a tilde and optionally a unique sequence number (up to
              5 digits) appended.  The sequence number  is  appended  whenever
              another  file  with the original name plus tilde already exists.
              When used together with the "overwrite all" option, -o, numbered
              backup  files are never created.  In this case, all backup files
              are named as the original  file  with  an  appended  tilde,  and
              existing  backup files are deleted without notice.  This feature
              works similarly to the default  behavior  of  emacs(1)  in  many
              locations.

              Example: the old copy of "foo" is renamed to "foo~".

              Warning:  Users should be aware that the -B option does not pre-
              vent loss of existing data under all circumstances.   For  exam-
              ple, when UnZip is run in overwrite-all mode, an existing "foo~"
              file is deleted before UnZip attempts to rename "foo" to "foo~".
              When this rename attempt fails (because of a file lock, insuffi-
              cient privileges, or any other reason), the extraction of "foo~"
              gets cancelled, but the old backup file is already lost.  A sim-
              ilar scenario takes place when the  sequence  number  range  for
              numbered backup files gets exhausted (99999, or 65535 for 16-bit
              systems).  In this  case,  the  backup  file  with  the  maximum
              sequence  number  is deleted and replaced by the new backup ver-
              sion without notice.

       -b
       --binary
              [Tandem, VMS] Selects the file record format used when  extract-
              ing  binary  files.  -b may conflict or interact with -a in dif-
              ferent ways on different system types.  -b is ignored on systems
              other than Tandem and VMS.

              Zip  (or  a  similar  archiving  program)  identifies  files  as
              "binary" or "text" when they are archived.  (A short-format Zip-
              Info  report  denotes  a binary file with a "b", and a text file
              with a "t".)

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

              [VMS] On VMS, for archives with VMS attribute information  (made
              with  "zip -V"  or  "ZIP /VMS"),  files  are always created with
              their  original  record  formats.   For  archives  without   VMS
              attribute  information  (not  made with "zip -V" or "ZIP /VMS"),
              files are normally created with Stream_LF record  format.   With
              -b,  binary files are created with fixed-length, 512-byte record
              format.  With -bb, all files are treated as binary files.   When
              extracting  to  standard output (-c or -p option in effect), the
              default conversion of text record  delimiters  is  disabled  for
              binary files (with -b), or for all files (with -bb).

       -C
       --ignore-case    ([CMS, MVS] --CMS-MVS-lower)
              Use  case-insensitive name matching for names in the member list
              and the  -x  excluded-member  list  on  the  command  line.   By
              default, case-sensitive matching is done.  For example, specify-
              ing "makefile" on the command line will match only "makefile" in
              the archive, not "Makefile" or "MAKEFILE".  On many systems, the
              local file system is case-insensitive, so case-insensitive  name
              matching would be more natural.  With -C, "makefile" would match
              "makefile", "Makefile", or "MAKEFILE".

              -C does not affect the search for the ZIP archive  file(s),  nor
              the matching of archive members to existing files on the extrac-
              tion path.  So, on a  case-sensitive  file  system,  UnZip  will
              never  try  to  overwrite  a file "FOO" when extracting a member
              named "foo"!

       -c
       --to-stdout
              Primary Mode.  Extract files to stdout/screen.  For details, see
              Primary Mode options.

       -D
       --dir-timestamps
              Control  timestamps  on  extracted  files  and  directories.  By
              default, UnZip restores timestamps for extracted files, but  not
              for  directories  it  creates.  Specifying -D tells UnZip not to
              restore any timestamps.  Specifying -D- tells UnZip  to  restore
              timestamps  for  directories  as well as other items.  -D- works
              only on systems that support setting timestamps for  directories
              (currently  ATheOS,  BeOS,  MacOS,  OS/2, Unix, VMS, Win32).  On
              other systems, -D- has no effect.

              [Non-VMS] Timestamp restoration behavior changed  between  UnZip
              versions 6.00 and 6.1.  The following table shows the effects of
              various -D options for both versions.

                         UnZip version      |
                        6.00    |    6.1    | Restore timestamps on:
                     -----------+-----------+------------------------
                         -DD    |    -D     | Nothing.
                         -D     | (default) | Files, not directories.
                      (default) |    -D-    | Files and directories.

              [VMS] The old behavior on VMS was the same as the  new  behavior
              on all systems.  (The old negated --D option is now -D-, because
              of changes to the command-line parser.)

       -d dest_dir
       --extract-dir dest_dir
              Specifies a  destination  directory  for  extracted  files.   By
              default, files are extracted (and subdirectories created) in the
              current (default, working) directory.  With -d dest_dir, extrac-
              tion  is  done  into the specified directory, instead.  See also
              -da.

              The option and directory may be concatenated without  any  white
              space  between them, but this may cause normal shell behavior to
              be suppressed.  For example, "-d ~" (tilde) is expanded by  Unix
              shells  into the name of the user's home directory, but "-d~" is
              treated as a literal "~" subdirectory of the current directory.

              [VMS] On VMS, only a VMS-style device:[directory]  specification
              is permitted.

       -da[=reuse]
       --auto-extract-dir[=reuse]
              Specifies  a  destination directory for extracted files which is
              derived from the base name of the archive.   By  default,  files
              are  extracted  (and  subdirectories  created)  in  the  current
              (default, working) directory.   With  -da,  UnZip  automatically
              derives  a subdirectory name from the archive name, creates that
              subdirectory, and extracts files into that subdirectory.

              For example, with -da, extraction of  "fred.zip"  is  done  into
              subdirectory  "fred" instead of into the current directory.  (On
              VMS, subdirectory "[.fred]".)

              Using this option can  help  to  avoid  cluttering  the  current
              directory  with  files extracted from an archive whose structure
              does not include a top-level directory.

              For greater safety, by default, UnZip  will  refuse  to  extract
              into  an  automatic  extraction  directory which already exists.
              Specifying the optional keyword "reuse" will allow  an  existing
              directory to be used.

              If  -da is specified as a default option in an environment vari-
              able, it can be overridden by either a negated -da- option or an
              explicit -d dest_dir option.  See also -d.

       -E
       --mac-efs
              [MacOS (pre-OS-X)]  Display contents of MacOS extra field during
              restore operation.

       -F
       --keep-nfs
              [Acorn] Suppress removal of NFS filetype extension  from  stored
              filenames.

              [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 already to
              have an appended NFS filetype extension, it is replaced  by  the
              info from the extra field.)

       -f
       --freshen
              Primary Mode.  Freshen existing files.  For details, see Primary
              Mode options.

       -h
       --help
              Primary Mode.  Display brief (roughly 24 lines)  usage  instruc-
              tions.  For details, see Primary Mode options.

       -hh
       --long-help
              Primary   Mode.    Display  complete  usage  instructions.   For
              details, see Primary Mode options.

       -I char_set
       --iso-char-set char_set
              [Unix] Select ISO character set char_set.  See also -0 and -O.

       -i
       --no-mac-ef-names
              [MacOS (pre-OS-X)]  Ignore  filenames  stored  in  MacOS   extra
              fields.   Instead,  the  most  compatible filename stored in the
              generic part of the member's header is used.

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

              [MacOS (pre-OS-X)] Ignore Mac OS extra fields.

              [Mac  OS X] Do no special Mac-specific processing of AppleDouble
              archive members.  An AppleDouble archive member is restored as a
              separate "._name" file, as it would be on a non-Mac file system.

                  Note that "-J" is not equivalent to
                  "-Je -Jf -Jr".  With "-J", an AppleDouble archive
                  member is restored as a separate "._name" file, as it would
                  be on a non-Mac file system.  With "-Je -Jf -Jr", all the
                  data in an AppleDouble archive member are ignored, so the
                  data fork file is restored with no extended attributes
                  (-Je), no Finder info (-Jf), and no resource fork (-Jr);
                  no "._name" file is created.

              Note that -j acts on the path of an archive member, and is
              independent of the destination directory specified using -d or
              -da.  For example, with "-d zz -j=1", an archive
              member like "a/b/c/d/ee.txt" would be extracted as
              "zz/b/c/d/ee.txt", with -j=1 stripping the "a/" off the
              archive path, and -d zz adding the "zz/" to the path in the
              destination file system.

       -Je
       --junk-extattr
              [Mac  OS  X]  Ignore  all  Mac OS extended attributes.  Extended
              attribute processing is available on Mac OS X  10.4  and  later.
              See also -J, -Jf, -Jq, and -Jr.

       -Jf
       --junk-finder
              [Mac  OS  X]  Ignore Mac OS Finder info.  See also -J, -Je, -Jq,
              and -Jr.

       -Jq
       --junk-qtn
              [Mac OS X] Ignore Mac OS X  Quarantine  ("com.apple.quarantine")
              extended  attribute.   Use  "-Je",  to ignore this and all other
              extended attributes.  Extended attribute processing is available
              on Mac OS X 10.4 and later.  See also -J, -Je, -Jf, and -Jr.

       -Jr
       --junk-rsrc
              [Mac  OS X] Ignore Mac OS Resource fork.  See also -J, -Je, -Jf,
              and -Jq.

       -j[=depth]
       --junk-dirs[=depth]
              Junk directories on extracted files.   With  -j,  all  directory
              information  is  stripped  from  an  archive member name, so all
              files are extracted into the destination directory.   (See  also
              -d and -da.)

              If a depth (=depth, where depth is a positive integer) is speci-
              fied, then that number of directory levels will be stripped from
              an  archive  member  name.   For example, an archive member like
              "a/b/c/d/ee.txt"    would    normally    be     extracted     as
              "a/b/c/d/ee.txt".   With  -j, it would be extracted as "ee.txt".
              With -j=2, the first two directory levels would be stripped,  so
              it would be extracted as "c/d/ee.txt".

       --jar
       Treat archive(s) as Java JAR.  Over-simplification in Java JAR archives
       can cause UnZip to transform UTF-8 file names according to  inappropri-
       ate  (MS-DOS)  rules,  yielding corrupt names on extracted files (typi-
       cally those with character codes 128-255).  Archives containing a  Java
       "CAFE"  extra  field should be detected automatically, and handled cor-
       rectly, but not all JAR archives include that extra field.   Specifying
       --jar tells UnZip to expect UTF-8 file names, regardless of whether the
       archive contains a "CAFE" extra field.
       -K
       --keep-s-attrs
              [AtheOS, BeOS, Unix] Retain SUID/SGID/Tacky permission bits.  By
              default,  these  permission  bits are cleared, for security rea-
              sons.

       -k
       --keep-permissions
              [AtheOS, BeOS, Unix, VMS] Control how  archived  permissions  or
              protections are restored on extracted files and directories.

              By  default, archived permissions are restored with some limita-
              tions.  On AtheOS, BeOS, and Unix, the current  umask  value  is
              applied  (to  the normal user/group/other permissions).  On VMS,
              the current default  protection  is  applied  to  the  UIC-based
              (SOGW) protections.

              With -k, the archived permissions are restored without regard to
              the Unix umask or VMS default protection.  (This was the default
              behavior in UnZip versions before 6.1.)

              With -k-, the archived permissions are ignored, so only the Unix
              umask or VMS default protection is effective.  (On VMS, directo-
              ries are always created without any Delete access.)

              On  AtheOS,  BeOS, and Unix, the SUID/SGID/Tacky permission bits
              are controlled by the -K/--keep-s-attrs  option,  regardless  of
              the -k/--keep-permissions setting.

       -ka
       --keep-acl
              [VMS] Restore ACLs on extracted files and directories.

       -L
       --lowercase-names
              Convert  to  lowercase any filename originating on an uppercase-
              only operating system or file system.  (This was UnZip's default
              behavior  in versions before 5.11.  The current default behavior
              is the same as the old behavior with the -U option.  -U  is  now
              used for another purpose.)

              Depending  on the archiver, files archived from single-case file
              systems (old MS-DOS FAT, VMS ODS2, and so on) 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 on Unix.  By default UnZip lists
              and extracts such filenames exactly as they're stored (excepting
              truncation,  conversion  of  unsupported  characters, an so on).
              With -L, the names of all files from  certain  systems  will  be
              converted  to lowercase.  With -LL, all file names will be down-
              cased, regardless of the originating file system.

       -l
       --list
              Primary Mode.  List archive members.  For details,  see  Primary
              Mode options.

       -M    ([CMS,MVS] Or: -m)
       --more
              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.   If the actual number of lines on the screen can not be
              determined, 24 lines will be assumed.

       -N
       --comment-to-note
              [Amiga] Extract member comments as Amiga filenotes.  Member com-
              ments  are  created  with  the  -c option of Zip, or with the -N
              option of the Amiga port of Zip, which stores filenotes as  com-
              ments.

       -n
       --never-overwrite
              When  extracting,  never  overwrite  existing  files.  If a file
              already exists, then skip the extraction of  that  file  without
              asking.  See also -o (--overwrite).

              By  default,  UnZip  queries the user before extracting any file
              that already exists.  The user may choose to overwrite only  the
              current  file,  overwrite all files, skip extraction of the cur-
              rent file, skip extraction of all existing files, or rename  the
              current file (choose a new name for the extracted file).

              [VMS]  On  VMS, the usual query choices are to create a new ver-
              sion of an existing file, to skip extraction, or to  rename  the
              current file.  In the case where an archive member name includes
              a version number, and -V ("retain VMS file version numbers")  is
              in  effect, then an additional query choice is offered: to over-
              write the existing file.

       -O char_set
       --oem-char-set char_set
              [Unix] Select OEM character set char_set.  See also -0 and -I.

       -o
       --overwrite
              When extracting, always overwrite existing files without prompt-
              ing.   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 on OS/2.)  See also -n (--never-overwrite).

              By  default,  UnZip  queries the user before extracting any file
              that already exists.

              [Non-VMS] On non-VMS systems, 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  (choose a new name for the extracted
              file).

              [VMS] On VMS, the usual query choices are to create a  new  ver-
              sion  of  an existing file, to skip extraction, or to rename the
              current file.  In the case where an archive member name includes
              a  version number, and -V ("retain VMS file version numbers") is
              in effect, then an additional query choice is offered: to  over-
              write the existing file.  In this case, -o selects the "new ver-
              sion" choice, and -oo  (or  "-o  -o")  selects  the  "overwrite"
              choice.

       -P password
       --password password
              Use  password  to  decrypt  encrypted  archive members (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 can be  even  less
              secure,   Whenever  possible,  use  the non-echoing, interactive
              prompt to enter passwords.  Where security is  truly  important,
              use a strong encryption method, such as AES, instead of the rel-
              atively weak encryption provided by Traditional ZIP  encryption.
              Or,  use  an  external encryption program, such as GnuPG, before
              archiving the file.  (Note that Zip will probably not be able to
              do  significant  compression  on  a  file which has already been
              encrypted.)

       -p
       --pipe-to-stdout
              Primary Mode.  Extract files to stdout (pipe).  For details, see
              Primary Mode options.

       -q
       --quiet
              Perform  operations  quietly.   (-qq:  even  more  quietly).  By
              default, UnZip prints the names of the files it's extracting  or
              testing,  the extraction methods, any member or archive 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.

       -r
       --remove-exts
              [Tandem] Remove file extensions.

       -S
       --streamlf
              [VMS] Use Stream_LF record format when converting extracted text
              files  (-a,  -aa),  instead  of the text-file default, variable-
              length record format.

              [VMS] On VMS, for archives with VMS attribute information  (made
              with  "zip -V"  or  "ZIP /VMS"),  files  are always created with
              their  original  record  formats.   For  archives  without   VMS
              attribute  information  (not  made with "zip -V" or "ZIP /VMS"),
              all files are normally created  with  Stream_LF  record  format.
              With  -a,  text  files are normally created with variable-length
              record format, but adding -S gives them Stream_LF record format.
              With  -aa, all files are treated as text files.  See also -a and
              -b.

       -s
       --space-to-uscore
              Convert spaces in filenames to underscores.  Normally, on a sys-
              tem  which  allows spaces in filenames, UnZip extracts filenames
              with spaces intact (for example, "EA DATA. SF").   Working  with
              such  file  names  can be awkward, however, so -s can be used to
              replace spaces with underscores.

       -sc
       --show-command
              Show processed command line (options, arguments), and then exit.

              Strictly speaking  this  is  a  primary-mode  option,  but  it's
              intended for use in program development, not for normal use.

       -si
       --show-pid
              [Non-VMS]  Show the UnZip program's process ID (pid) before per-
              forming any other work.  This value can then be used in a  "kill
              -USR1 pid" command to trigger a user-triggered progress report.

       -so
       --show-options
              Display all valid program options, then exit.

              Strictly  speaking  this  is  a  primary-mode  option,  but it's
              intended for use in program development, not for normal use.

       -T
       --timestamp-new
              Primary Mode.  Set the timestamp on the archive(s)  to  that  of
              the  newest  file  in  each  one.  For details, see Primary Mode
              options.

       -t
       --test
              Primary Mode.  Test archive members.  For details,  see  Primary
              Mode options.

       -U
       --unicode
              [UNICODE_SUPPORT]  Control UTF-8 handling.  When UNICODE_SUPPORT
              is available, -U forces UnZip to escape all non-ASCII characters
              from UTF-8 coded filenames as "#Uxxxx' (for UCS-2 characters, or
              "#Lxxxxxx" for  Unicode  codepoints  needing  3  octets).   This
              option  is  provided  mainly  for debugging, when the fairly new
              UTF-8 support is suspected of mangling extracted filenames.

              -UU disables the recognition of UTF-8  encoded  filenames.   The
              handling  of  filename  codings  within  UnZip falls back to the
              behavior of pre-Unicode versions.

              [old, obsolete usage] Leave filenames uppercase  if  created  on
              MS-DOS, VMS, and so on.  See -L.

       -u
       --update
              Primary  mode.   Update  existing  files  and create new ones if
              needed.  For details, see Primary Mode options.

       -V
       --keep-versions
              [Non-CMS-MVS] Retain VMS file version numbers.  VMS files can be
              stored  with  a  version  number,  in the format "file.type;##",
              where "##" is a positive decimal number.  By default  VMS  ";##"
              version  numbers 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.)

              [Non-VMS] Note that before UnZip version 6.1, on a non-VMS  sys-
              tem,  a  file  with a name like "fred;123" would, by default, be
              extracted as "fred", even if the file did not originate on a VMS
              system  (so  that  ";123"  was probably not really a VMS version
              number).  Beginning with UnZip version 6.1, the default behavior
              is  to  strip  VMS  version  numbers  only from files which were
              archived on a VMS system.  To  restore  the  old  behavior,  and
              always strip apparent VMS version numbers, explicitly negate the
              option: -V-.

              [VMS] Note that on VMS, -V affects only version numbers, and  is
              not  needed  to  restore  VMS  file attributes.  Zip's -V (/VMS)
              option is required to store VMS attributes in  an  archive.   If
              that  was  done  when  an  archive  was created, then UnZip will
              always restore those attributes when a file is extracted.

       -v
       --verbose
              When used with some primary mode option, -v can make output more
              verbose.  See also Primary Mode options, and -l in particular.

              Note:  If only -v (--verbose) is specified with an archive name,
              then UnZip acts as if "-l -v" were  specified,  and  a  detailed
              listing is generated.

       --version
       Primary Mode.  Display the program version, build options, and relevant
              environment variables.  For details, see Primary Mode options.

       -vq
       --quick-version
              Primary  mode.   Display  a  brief  (one-line)  program  version
              report.

       -W
       --wild-no-span
              [WILD_STOP_AT_DIR] (Valid when the program was built with the  C
              macro WILD_STOP_AT_DIR defined.)  By default, the wildcard char-
              acters "?"  (single-character wildcard) and "*" (multi-character
              wildcard) match any character in a member path/name.  "-W" modi-
              fies the pattern-matching behavior for archive members  so  that
              both  "?"   (single-character wildcard) and "*" (multi-character
              wildcard) do not match the directory  separator  character  "/".
              (The two-character sequence "**" acts as a multi-character wild-
              card that includes the directory separator in its matched  char-
              acters.)  For example, with "-W":

               "*.c"   matches "foo.c" but not "mydir/foo.c"
               "**.c"  matches both "foo.c" and "mydir/foo.c"
               "*/*.c" matches "bar/foo.c" but not "baz/bar/foo.c"
               "??*/*" matches "ab/foo" and "abc/foo"
                       but not "a/foo" or "a/b/foo"

              This  modified  behavior  is  equivalent to the pattern matching
              style used by the shells of some of UnZip's supported target OSs
              (one  example  is Acorn RISC OS).  This option may not be avail-
              able on systems where the Zip archive's internal directory sepa-
              rator  character  "/"  is allowed as regular character in native
              operating system filenames.

              [non-VMS] Currently, UnZip uses the same pattern matching  rules
              for  both  wildcard archive file name specifications and archive
              member selection patterns on most  system  types.   For  systems
              allowing  "/" as regular filename character, the -W option would
              not work as expected on a wildcard file name specification.

       -X
       --restore-owner
              [NT, OS/2, Unix, VMS, Tandem] Restore owner info (user and group
              info  (UID/GID)  on  Unix,  UIC  on VMS, or access control lists
              (ACLs) on 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 on Windows NT.)  In most cases  this
              will  require special system privileges, and doubling the option
              (-XX) on NT instructs UnZip to use  privileges  for  extraction;
              but  on  Unix, for example, a user who belongs to several groups
              can restore files owned by any of those groups, so long  as  the
              user  IDs  match  the  user's  own.   Note  that  ordinary  file
              attributes are always restored.  This  option  applies  only  to
              optional,  extra ownership info available on some operating sys-
              tems.  (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  which
              conditions this would ever be useful anyway.)

       -x member ...
       --exclude member ...
              An optional list of archive members to be excluded from process-
              ing.  Because wildcard characters normally match  "/"  directory
              separators  (for exceptions, see the option -W), 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 (*.c, *.h) in the main directory, but none in  any  subdi-
              rectories.   Without  the  -x  option, all C source files in all
              directories within the archive would be extracted.

              When the program sees -x (--exclude) on a command line, it stops
              scanning for options, and treats every succeeding item as an ar-
              chive member name.  To avoid confusion between member names  and
              command options, it's simplest to specify -x (--exclude) and its
              member list as the last items on a command line.  Alternatively,
              the  special  name  "@" can be used to terminate the member list
              (and cause the program to resume scanning  for  options).   That
              is, the following two commands are equivalent:
                        unzip fred.zip -b -x file1 file2 file3
                        unzip fred.zip -x file1 file2 file3 @ -b

       -Y
       --dot-version
              [VMS]  Treat  archive member name endings of ".nnn" (where "nnn"
              is a decimal  number)  as  if  they  were  VMS  version  numbers
              (";nnn").   (The  default  is to treat them as file types.)  For
              example:
                       "a.b.3" -> "a.b;3"

       -Z
       --zipinfo-mode
              ZipInfo mode.  If the first option on the command  line  is  -Z,
              then  the  program  runs in ZipInfo mode.  Remaining options are
              interpreted as ZipInfo options.  See the zipinfo manual page for
              a description of those options.

       -z
       --zipfile-comment
              Primary  mode.   Display only the archive comment.  For details,
              see Primary Mode options.

       -$
       --volume-labels
              [MS-DOS, NT, OS/2, VMS] Restore the volume label if the  extrac-
              tion  medium  is  removable (for example, a diskette).  Doubling
              the option (-$$) allows fixed media (hard disks) to  be  labeled
              as well.  By default, volume labels are ignored.
              [VMS] On VMS, a volume must be allocated, not shared, for a vol-
              ume label to be set.

       -/
       --extensions
              [Acorn] Overrides the extension list supplied by  the  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.

       -:
       --do-double-dots
              [all but Acorn, VM/CMS, MVS, Tandem] Allows UnZip to extract ar-
              chive members into locations outside of the  current  extraction
              destination directory (and its subdirectories).

              For  security reasons, UnZip normally removes "parent directory"
              path components ("../") from the path names of  archive  members
              as  they  are  extracted.   This safety feature (new for version
              5.50) prevents UnZip from accidentally writing files to directo-
              ries  outside  the  current  destination directory tree.  The -:
              option sets UnZip back to its previous, more  liberal  behavior,
              allowing exact extraction of archives that use "../" path compo-
              nents to create multiple directory trees at or above  the  level
              of the destination directory.

              This  option  does  not  enable  writing  explicitly to the root
              directory ("/").  To achieve this, it is necessary  to  set  the
              extraction  target  folder  to  "/"  (by  using  an  option like
              "-d /").  However, when the -: option is specified, it is  still
              possible  implicitly  to  write  to the root directory if member
              paths specifying enough "../" path components.

              Use this option with extreme caution.

       -^
       --control-in-name
              [Unix] Allow control characters in file names of  extracted  ZIP
              archive  members.   On Unix, a file name may contain any (8-bit)
              character code with the two exceptions  of  "/"  (the  directory
              delimiter)  and  NUL (0x00, the C string-termination character),
              unless the specific file system  has  more  restrictive  conven-
              tions.   Generally,  this allows embedding ASCII control charac-
              ters or escape sequences in file names.  However,  this  feature
              allows  the  use of malicious file names which can cause various
              kinds of bad trouble when displayed on a user's  terminal/emula-
              tor.   (Even a file name with unprintable but otherwise harmless
              characters can cause problems for users.)

              For these reasons, by  default,  UnZip  applies  a  filter  that
              removes   potentially  dangerous  control  characters  from  the
              extracted file names.  The -^ option overrides  this  filter  in
              the  rare  case that embedded filename dangerous control charac-
              ters are to be intentionally restored.

ENVIRONMENT OPTIONS
       UnZip's default  behavior  may  be  modified  by  placing  command-line
       options  in an environment variable.  This can be done with any option,
       but it is probably most  useful  options  like  -a  (auto-convert  text
       files),  -L  (downcase  file names from systems with all uppercase file
       names), -C (use case-insensitive name matching), -q (quiet), -o (always
       overwrite), or -n (never overwrite).

              For  UnZip,  the  environment  variable name is UNZIP, except on
              VMS, where it's UNZIP_OPTS (to avoid conflict  with  a  foreign-
              command  DCL  symbol, UNZIP).  For similarity with Zip, if UNZIP
              (UNZIP_OPTS on VMS) is not defined, then UnZip will use UNZIPOPT
              the same way.

              For  ZipInfo ("unzip -Z"), the environment variable name is ZIP-
              INFO, except on VMS, where it's  ZIPINFO_OPTS.   For  similarity
              with  Zip, if ZIPINFO (ZIPINFO_OPTS on VMS) is not defined, then
              ZipInfo will use ZIPINFOOPT the same way.

              For example, to make UnZip act  as  quietly  as  possible,  only
              reporting errors, one could use commands like the following:

         Unix Bourne (or similar) shell:
              UNZIP='-q -q'; export UNZIP

         Unix C shell:
              setenv UNZIP '-q -q'

         OS/2 or MS-DOS:
              set UNZIP="-q -q"

         VMS (with quotation to preserve lower case in DCL):
              define UNZIP_OPTS "-q -q"       ! Logical name, or
              UNZIP_OPTS = "-q -q"            ! DCL symbol.  (Either works.)

              Environment  options  are treated the same as 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 an explicit option to cancel or override it.   For  example,
              to override one of the "quiet" flags in the example above, use a
              command like:
                  unzip -q- [other options] archive.zip

              The leading hyphen is  the  normal  option  character,  and  the
              trailing  one  negates the option, canceling one level of quiet-
              ness.  To  cancel  multiple  "quiet"  flags,  use  multiple  -q-
              options:

           unzip -t -q- -q- archive
           unzip -q- -q- -t archive

              Note  that multiple one-character options like "-q" and "-q" can
              be combined into a single "-qq", but it's generally  clearer  to
              keep  each instance of each option separate.  Similarly, negated
              one-character options can be  combined,  as  with  "-q-q-",  but
              "-q- -q-" is generally clearer.

              The examples show short (one-character) options, but long ("--")
              options are also allowed.

       The timezone variable (TZ) should be set according to the  local  time-
       zone  in  order  for  the Freshen (-f) and Update (-u) modes to operate
       correctly.  For details, see -f.  This variable may also  be  necessary
       to get timestamps of extracted files to be set correctly.

              On  Windows  systems, UnZip gets the timezone configuration from
              the registry, assuming it is correctly set in the Control Panel.
              The TZ variable is ignored on these systems.

ENCRYPTION/DECRYPTION
       Zip  and UnZip have long supported a relatively weak encryption method,
       which we call Traditional ZIP encryption.  The source code  for  Tradi-
       tional  encryption is included in the source kits, and support for Tra-
       ditional encryption is enabled by default.

       The Info-ZIP programs UnZip (version 6.1 and later)  and  Zip  (version
       3.1 and later)include optional support for Advanced Encryption Standard
       (AES) encryption, a relatively strong encryption method.

       The Info-ZIP AES implementation is based on the WinZip AES
              specification, and uses AES encryption code  supplied  by  Brian
              Gladman.  We refer to it as IZ_AES_WG (Info-ZIP AES WinZip/Glad-
              man) or simply AES_WG.  (WinZip is  a  registered  trademark  of
              WinZip  International  LLC.)  The source code for AES_WG encryp-
              tion is included in the normal UnZip source kit, and support for
              it will be enabled by default.

       The WinZip AES scheme is described in:
              http://www.winzip.com/aes_info.htm

       For information on the IZ_AES_WG source code, see:
              aes_wg/README_AES_WG.txt
              or:
              ftp://ftp.info-zip.org/pub/infozip/crypt/README_AES_WG.txt

       See the INSTALL file in the source kit for details on how to disable
              AES_WG encryption (or how to disable Traditional encryption).

       Normally,  encryption  passwords are supplied by the user interactively
       when requested by the program.  See the -P option for a  (less  secure)
       method of specifying a password on the command line.

       With  Traditional  encryption,  when  decrypting,  a  password  will be
       checked against header data, and used if it appears to be correct.  The
       correct  password  will  always  check out against the header data, but
       there is a 1-in-256 chance that an incorrect  password  will  as  well.
       (This is a security feature of the PKWARE archive format; it helps pre-
       vent brute-force attacks that might otherwise gain a large speed advan-
       tage  by testing only the header.)  In the case that an incorrect pass-
       word 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
       during 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.  (The situation is actually a little more complicated.  Some
       old  versions  of  Zip  and  ZipCloak  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-character passwords (for example, pass-
       words with accented European characters) may  not  be  portable  across
       systems or to other archivers.  This problem stems from the use of mul-
       tiple 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 ISO coding (Latin-1 etc.) everywhere else; and  Nico  Mak's  WinZip
       6.x  does  not  allow  8-bit-character 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  encod-
       ing.)   ISO  character  encodings other than Latin-1 are not supported.
       The new addition of (partial) Unicode (UTF-8) support in UnZip 6.0  has
       not  yet been adapted to the encryption password handling in UnZip.  On
       systems that use UTF-8 as native character encoding, UnZip simply tries
       decryption  with  the  native  UTF-8  encoded  password;  the  built-in
       attempts to check the password in translated encoding have not yet been
       adapted for UTF-8 support and will consequently fail.

EXAMPLES
       To use UnZip to extract all members of the archive letters.zip into the
       current directory and subdirectories below it, creating any subdirecto-
       ries 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 -t -q letters

       To test all ".zip" archives in the current directory, printing only the
       summaries:

           unzip -t -q "*.zip"

       Here,  the  wildcard  archive name was quoted to keep a Unix shell from
       expanding ("globbing") it.  (This would not be necessary on VMS.)

       The following command extracts 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) (again, quoting the
       wildcard member name pattern):

           unzip -c -a 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 from source.zip all Fortran and C source  files  (*.f,  *.c,
       *.h)  and  Makefile  into  the /tmp directory (again, quoting the wild-
       card):

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

       To extract all FORTRAN and C source  files,  regardless  of  case  (for
       example, both *.c and *.C, and any makefile, Makefile, MAKEFILE or sim-
       ilar):

           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 -aa -C -L source.zip "*.[fch]" makefile -d /tmp

       The following command extracts only newer versions of the files already
       in the current directory,  without  querying.   (Note:  Be  careful  of
       extracting in one timezone an archive created in another.  ZIP archives
       created by Zip versions before 2.1 contain no timezone information, and
       a "newer" file from an eastern timezone may, in fact, be older):

           unzip -f -o sources

       To extract newer versions of the files already in the current directory
       and to create any files not already  there  (same  caveat  as  previous
       example):

           unzip -u -o sources

       To  display  a configuration report showing the program version, the OS
       and compiler used to build it, a list of optional features  enabled  at
       build time, and the values of all the relevant environment variables:

           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 -l -q file.zip

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

           unzip -l -q- file.zip
       or:
           unzip -lq- file.zip
       or:
           unzip -q-l file.zip

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

              0      Normal.  No errors or warnings detected.

              1      One or more warnings  were  encountered,  but  processing
                     completed successfully.  This includes archives where one
                     or more (but not all) files were skipped  because  of  an
                     unsupported  compression  or  encryption method, or a bad
                     encryption password.

              2      Error in the archive format.  Processing may or  may  not
                     have completed successfully.

              3      Severe  error in the archive format.  Processing probably
                     failed immediately.

              4      Memory allocation failed in program initialization.

              5      Memory allocation or terminal I/O  failed  in  encryption
                     password processing.

              6      Memory allocation failed while decompressing to disk.

              7      Memory allocation failed while decompressing in memory.

              8      Memory allocation failed.  (Currently not used.)

              9      Specified archive files were not found.

              10     Invalid command-line options or parameters.

              11     No matching files were found.

              50     Disk (file system) filled during extraction.

              51     Unexpected end-of-file while reading the archive.

              80     User interrupt (Ctrl/C or similar).

              81     No  files were processed, because of unsupported compres-
                     sion or encryption methods.

              82     No files were processed, because of bad encryption  pass-
                     word(s).

              83     Large-file  archive could not be processed by this small-
                     file program.

              84     Failed  to   create   automatic   extraction   directory.
                     (Already exists?)

       [VMS]  On VMS, the standard Unix exit status values are translated into
       valid VMS status codes.  For details, see the file  [.vms]NOTES.TXT  in
       the source kit.

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"  (for Zip 2.x) or "zip -FF" (for Zip 3.x) must be performed on
       the concatenated archive in order to "fix" it.  Also, zip  version  3.0
       and  later can combine multi-part (split) archives into a combined sin-
       gle-file archive using "zip -s- inarchive -O outarchive".  See the  zip
       manual  page  for more information.)  This may 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-character passwords  (such  as  passwords
       with  accented  European characters) may not be portable across systems
       and/or other archivers.  See also ENCRYPTION/DECRYPTION.

       UnZip's -M ("--more") option tries to take into account automatic wrap-
       ping  of  long lines.  However, the code may fail to detect the correct
       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  type,
       UnZip  may  not detect the true terminal/emulator geometry, but instead
       may rely on "commonly used" default dimensions.  The  correct  handling
       of  tabs would require the implementation of a query for the actual tab
       setup on the output terminal/emulator.

       [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 archive, nor are hard-linked files relinked.   Basi-
       cally,  the only file types restored by UnZip are regular files, direc-
       tories, 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 associ-
       ated  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 nor-
       mally (with or without freshening/updating existing files), then  over-
       write just the directory entries (for example, "unzip -o foo */").

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | compress/unzip   |
       +---------------+------------------+
       |Stability      | Volatile         |
       +---------------+------------------+

SEE ALSO
       funzip(1L), unzipsfx(1L), zip(1L), zipcloak(1L),
       zipgrep(1L), zipinfo(1L), zipnote(1L), zipsplit(1L)

URL
       The Info-ZIP main Web page is:
                  http://www.info-zip.org/

       FTP access is available, too:
                  ftp://ftp.info-zip.org/pub/infozip/

AUTHORS
       The  primary  Info-ZIP authors (current semi-active members of the Zip-
       Bugs workgroup) are:  Ed Gordon (Zip, general maintenance, shared code,
       Zip64,  Win32,  Unix,  Unicode); Christian Spieler (VMS, MS-DOS, Win32,
       shared code, general Zip and UnZip integration and optimization);  Onno
       van  der  Linden  (Zip); Mike White (Win32, Windows GUI, Windows DLLs);
       Kai Uwe Rommel (OS/2, Win32); Steven  M.  Schweda  (UnZip  maintenance,
       VMS,  Unix,  support of new features); Paul Kienitz (Amiga, Win32, Uni-
       code); 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,  Info-ZIP  server  maintenance);
       Steve Salisbury (Win32); Steve Miller (Windows CE GUI), Johnny Lee (MS-
       DOS, Win32, Zip64); and Dave Smith (Tandem NSK).

       The following people are 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 decompression,
       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 proginfo/CONTRIBS file in the UnZip source distribution for a rela-
       tively complete version.

NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source    was    downloaded    from      http://antinode.info/ftp/info-
       zip/unzip610c25.zip.

       Further information about this software can be found on the open source
       community website at http://www.info-zip.org/UnZip.html.



Info-ZIP                       2016-09-29 (v6.1)                      UNZIP(1)