mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			1468 lines
		
	
	
		
			65 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1468 lines
		
	
	
		
			65 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
.!
 | 
						|
.!  File:       ZIP.RNH
 | 
						|
.!
 | 
						|
.!  Author:     Hunter Goatley
 | 
						|
.!
 | 
						|
.!  Date:       October 22, 1991
 | 
						|
.!
 | 
						|
.!  Description:
 | 
						|
.!
 | 
						|
.!      RUNOFF source file for portable ZIP on-line help for VMS.
 | 
						|
.!      Adapted from MANUAL, distributed with ZIP.
 | 
						|
.!
 | 
						|
.!      To build:       $ RUNOFF ZIP.RNH
 | 
						|
.!                      $ LIBR/HELP/INSERT libr ZIP
 | 
						|
.!
 | 
						|
.!  Modification history:
 | 
						|
.!
 | 
						|
.!      Hunter Goatley          22-OCT-1991 20:45
 | 
						|
.!              Genesis.
 | 
						|
.!      Jean-loup Gailly        25 March 92
 | 
						|
.!              Adaptation to zip 1.6.
 | 
						|
.!      Igor Mandrichenko       9-JUN-1992
 | 
						|
.!              Added explanation of -V option.
 | 
						|
.!      Jean-loup Gailly        14 June 92
 | 
						|
.!              Adaptation to zip 1.8.
 | 
						|
.!      Jean-loup Gailly        20 Aug 92
 | 
						|
.!              Adaptation to zip 1.9.
 | 
						|
.!      Jean-loup Gailly        31 Aug 93
 | 
						|
.!              Adaptation to zip 2.0.
 | 
						|
.!      Christian Spieler       20 Sep 93
 | 
						|
.!              Adaptation to zip 2.0 and OpenVMS completed.
 | 
						|
.!      Christian Spieler       05 Dec 95
 | 
						|
.!              Adaptation to zip 2.1, new options.
 | 
						|
.!      Christian Spieler       20 Jan 96
 | 
						|
.!              Changed -L and -v descriptions.
 | 
						|
.!      Christian Spieler       11 Feb 96
 | 
						|
.!              Added -X option.
 | 
						|
.!      Onno van der Linden,
 | 
						|
.!      Christian Spieler       13 Mar 96
 | 
						|
.!              Removed -ee option.
 | 
						|
.!      Christian Spieler       09 Feb 96
 | 
						|
.!              Updated copyright notice, Zip version.
 | 
						|
.!      Christian Spieler       21 Jul 97
 | 
						|
.!              Added -P, -R, -i@, -x@ and -tt options, modified for Zip 2.2.
 | 
						|
.!      Christian Spieler       14 Oct 97
 | 
						|
.!              unified spelling of "Info-ZIP", final cleanups for 2.2.
 | 
						|
.!      Steven Schweda          10 May 2007
 | 
						|
.!              General update for version 3.0.
 | 
						|
.!      Ed Gordon               12 May 2007
 | 
						|
.!              Minor updates for version 3.0.
 | 
						|
.!
 | 
						|
.noflags
 | 
						|
.lm4 .rm72
 | 
						|
.indent -4
 | 
						|
1 ZIP
 | 
						|
.br
 | 
						|
Zip is a compression and file packaging utility for several operating
 | 
						|
systems, including UNIX, VMS,  MSDOS, OS/2, Windows 9x/NT/XP, Minix, Atari,
 | 
						|
Macintosh, Amiga, and Acorn RISC OS.  It is analogous to a combination of
 | 
						|
tar and compress and is compatible with PKZIP (Phil Katz's ZIP) for
 | 
						|
MSDOS systems.
 | 
						|
.sk
 | 
						|
Zip is useful for packaging a set of files for distribution, for
 | 
						|
archiving files, and for saving disk space by temporarily compressing
 | 
						|
unused files or directories.  A companion program, UnZip, unpacks Zip
 | 
						|
archives.
 | 
						|
.sk
 | 
						|
For brief help on Zip or UnZip, run the program without specifying any
 | 
						|
parameters on the command line.
 | 
						|
.sk
 | 
						|
This description covers the Zip program which uses a UNIX-style command
 | 
						|
line.  A separate program is available which provides a VMS-style CLI
 | 
						|
command line, and it has its own documentation.  Refer to the Zip
 | 
						|
installation instructions for details.
 | 
						|
.sk
 | 
						|
Format
 | 
						|
.sk;.lm+2;.literal
 | 
						|
ZIP [-options] archive inpath inpath ...
 | 
						|
.end literal;.lm-2
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Basic_Usage
 | 
						|
.br
 | 
						|
Format
 | 
						|
.sk;.lm+2;.literal
 | 
						|
ZIP [-options] archive inpath inpath ...
 | 
						|
.end literal;.lm-2
 | 
						|
.sk
 | 
						|
The default action of Zip is to add or replace entries in "archive" from
 | 
						|
the list of "inpath" file specifications, which can include directories
 | 
						|
and file names with VMS-style wildcards, or the special name -@ to read
 | 
						|
file specifications from SYS$INPUT (stdin).
 | 
						|
.sk
 | 
						|
With SET PROCESS /PARSE_STYLE = EXTENDED (available on recent non-VAX
 | 
						|
systems), Zip preserves the case of the command line.  Otherwise, mixed-
 | 
						|
or upper-case options and arguments must be quoted.  For example,
 | 
						|
"-V".  Examples in this document generally do not show this quotation,
 | 
						|
so VAX and /PARSE_STYLE = TRADITIONAL users (that is, troglodytes) will
 | 
						|
need to add quotation where needed when working with these examples.
 | 
						|
.sk
 | 
						|
General
 | 
						|
.sk
 | 
						|
Zip reads one or more files, compresses the data (normally), and stores
 | 
						|
the compressed information into a single Zip archive file, along with
 | 
						|
information about each file (name, path, date and time of last
 | 
						|
modification, protection, and check information to verify file
 | 
						|
integrity).  On a VMS system, Zip can also save VMS/RMS file attributes,
 | 
						|
allowing UnZip to restore the files without loss of important file
 | 
						|
attributes.  Zip can pack an entire directory structure into a Zip
 | 
						|
archive with a single command.
 | 
						|
.sk
 | 
						|
Compression
 | 
						|
.sk
 | 
						|
Compression ratios of 2:1 to 3:1 are common for text files.  Zip has one
 | 
						|
standard compression method ("deflate") and can also store files without
 | 
						|
compression.  Zip (and UnZip) may be built with optional support for the
 | 
						|
bzip2 compression method.  Then, the user may select bzip2 compression
 | 
						|
instead of the default "deflate" method.  Zip automatically chooses
 | 
						|
simple storage over compression for a file, if the specified compression
 | 
						|
method does not actually compress the data in that file.
 | 
						|
.sk
 | 
						|
Compatibility
 | 
						|
.sk
 | 
						|
Zip and UnZip can work with archives produced by PKZIP (supporting most
 | 
						|
PKZIP features up to PKZIP version 4.6), and PKZIP and PKUNZIP can work
 | 
						|
with archives produced by Zip (with some exceptions, notably streamed
 | 
						|
archives, but recent changes in the .ZIP file standard may facilitate
 | 
						|
better compatibility).  Zip version 3.0 is compatible with PKZIP 2.04
 | 
						|
and also supports the Zip64 extensions of PKZIP 4.5 which allows
 | 
						|
archives as well as files to exceed the previous 2 GB limit (4 GB in
 | 
						|
some cases).  Zip also supports bzip2 compression if the bzip2 library
 | 
						|
is included when Zip is built.  Note that PKUNZIP 1.10 cannot extract
 | 
						|
files produced by PKZIP 2.04 or Zip 3.0.  You must use PKUNZIP 2.04g or
 | 
						|
UnZip 5.0p1 (or later versions) to extract them.
 | 
						|
.sk
 | 
						|
Large Archives and Zip64
 | 
						|
.sk
 | 
						|
Where the operating system and C run-time support allow, Zip 3.0 and
 | 
						|
UnZip 6.0 (and later versions) support large files (input and archive),
 | 
						|
using the Zip64 extensions to the original .ZIP file format.  On VMS,
 | 
						|
this genarally means non-VAX systems with VMS V7.2 or later (perhaps
 | 
						|
requiring a C RTL ECO before VMS V7.3-2).
 | 
						|
.sk
 | 
						|
Zip automatically uses the Zip64 extensions when a file larger than 2 GB
 | 
						|
is added to an archive, an archive containing a Zip64 entry is updated
 | 
						|
(if the resulting archive still needs Zip64), the size of the archive
 | 
						|
will exceed 4 GB, or when the number of entries in the archive will
 | 
						|
exceed about 64K.  Zip64 is also used for archives streamed to a
 | 
						|
non-seekable output device.  You must use a 4.5 compatible UnZip to
 | 
						|
extract files using the Zip64 extensions such as UnZip 6.0 or later.
 | 
						|
.sk
 | 
						|
In addition, streamed archives, entries encrypted with standard
 | 
						|
encryption, or split archives created with the pause option may not be
 | 
						|
compatible with PKZIP as data descriptors are used, and PKZIP at the 
 | 
						|
time of this writing does not support data descriptors (but recent
 | 
						|
changes in the PKWare published .ZIP file standard now include some
 | 
						|
support for the data descriptor format Zip uses).
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 More_Usage
 | 
						|
.br
 | 
						|
Here is a very simple example of Zip use:
 | 
						|
.sk;.indent 10;
 | 
						|
$ zip stuff.zip *.*
 | 
						|
.sk
 | 
						|
This will create the Zip archive "stuff.zip" (assuming it does not
 | 
						|
already exist) and put all the (non-directory) files (";0") from the
 | 
						|
current default directory into "stuff.zip" in a compressed form.  The
 | 
						|
archive is opened using a default file specification of
 | 
						|
"SYS$DISK:[].zip", so specifying "stuff" as the archive name would also
 | 
						|
create (or use an existing) "stuff.zip", but specifying "stuff.other"
 | 
						|
would give you that name.  In general, Zip doesn't care about the type
 | 
						|
in the file specification, but for split archives (archives split over
 | 
						|
multiple files), the user should normally specify a type-less name,
 | 
						|
because Zip will normally generate sequentially numbered types ".z01",
 | 
						|
".z02", and so on for the early splits, and then the required ".zip" for
 | 
						|
the last split.  These file types are required by the Zip standard for
 | 
						|
split archives.
 | 
						|
.sk
 | 
						|
Standard VMS wildcard expansion ($SEARCH) is used to interpret the
 | 
						|
"inpath" file and directory specifications, like the "*.*" in this
 | 
						|
example.
 | 
						|
.sk
 | 
						|
On VMS, the most natural way to archive an entire directory tree is to
 | 
						|
use a directory-depth wildcard ("[...]").  For example:
 | 
						|
.sk;.indent 10
 | 
						|
zip foo [...]*.*
 | 
						|
.sk
 | 
						|
This will create the file "foo.zip" containing all the files (";0") and
 | 
						|
directories in and below the current default directory.  A more
 | 
						|
UNIX-like way to do this would be to use the -r (--recurse-paths)
 | 
						|
option:
 | 
						|
.sk;.indent 10
 | 
						|
$ zip -r foo *.*
 | 
						|
.sk
 | 
						|
Zip avoids including its own output files when selecting files to
 | 
						|
include in the archive, so it should be safe, as in this case, to create
 | 
						|
the archive in the same drectory as the input files.
 | 
						|
.sk
 | 
						|
One or more specific files, directories, or subdirectories may also be
 | 
						|
specified:
 | 
						|
.lm +10;.literal
 | 
						|
zip foo.zip readme.txt [www...]*.* [.ftp...]*.* -
 | 
						|
 [.src]*.h [.src]*.c
 | 
						|
.end literal;.lm -10
 | 
						|
.sk
 | 
						|
For security reasons, paths in Zip archives are always stored as
 | 
						|
relative paths, so some care is needed when creating an archive so that
 | 
						|
it will create the intended directory structure when UnZip is used to
 | 
						|
unpack it.
 | 
						|
.sk
 | 
						|
To use -r with a specific directory, the name of the directory file
 | 
						|
itself must be specified:
 | 
						|
.sk;.indent 10
 | 
						|
zip -r foo.zip [000000]www.dir ftp.dir
 | 
						|
.sk
 | 
						|
You may want to make an archive that contains the files in [.foo], but not
 | 
						|
record the directory name, "foo".  You can use the -j (junk path) option
 | 
						|
to leave off the path:
 | 
						|
.sk;.indent 10
 | 
						|
$ zip -j foo [.foo]*.*
 | 
						|
.sk
 | 
						|
If you are short on disk space, you might not have enough room to hold
 | 
						|
both the original directory and the corresponding compressed Zip
 | 
						|
archive.  In this case, you can create the archive in steps, and use the
 | 
						|
-m option.  For example, if [.foo] contains the subdirectories [.tom],
 | 
						|
[.dick], and [.harry], you could:
 | 
						|
.sk
 | 
						|
.lm +10;.literal
 | 
						|
zip -m foo [.foo.tom...]*.*
 | 
						|
zip -m foo [.foo.dick...]*.*
 | 
						|
zip -m foo [.foo.harry...]*.*
 | 
						|
.end literal;.lm -10
 | 
						|
.sk
 | 
						|
The first command would create foo.zip, and the next two would add to
 | 
						|
it.  The -m option means "move", and it will cause Zip to delete all
 | 
						|
files added to the archive after making or updating foo.zip.  No
 | 
						|
deletions will be done until the Zip operation has completed with no
 | 
						|
errors.  This option is obviously dangerous and should be used with
 | 
						|
care, but it does reduce the need for free disk space.  When -m is
 | 
						|
used, the -T option is recommended and will test the resulting archive
 | 
						|
before deleting the input files.
 | 
						|
.sk
 | 
						|
If a file specification list is too long to fit conveniently on the Zip
 | 
						|
command line, the -@ option can be used to cause Zip to read a list of
 | 
						|
file specifications from SYS$INPUT (stdin).  If a DCL command procedure
 | 
						|
is used, the names can be specified in the procedure:
 | 
						|
.sk;
 | 
						|
.lm +10;.literal
 | 
						|
$ zip foo -@
 | 
						|
$ deck
 | 
						|
file_spec_1
 | 
						|
file_spec_2
 | 
						|
file_spec_3
 | 
						|
$ eod
 | 
						|
.end literal;.lm -10
 | 
						|
.sk
 | 
						|
The file specifications can also be put into a separate file, and fed
 | 
						|
into Zip by explicitly defining SYS$INPUT, or by using PIPE.  For
 | 
						|
example, with the list in foo.zfl:
 | 
						|
.sk;
 | 
						|
.lm +10;.literal
 | 
						|
$ define /user_mode sys$input foo.zfl
 | 
						|
$ zip foo -@
 | 
						|
.end literal;.lm -10;
 | 
						|
or:
 | 
						|
.lm +10;.literal
 | 
						|
$ pipe type foo.zfl | zip foo -@
 | 
						|
.end literal;.lm -10
 | 
						|
.sk
 | 
						|
If Zip is not able to read a file, it issues a warning but continues.
 | 
						|
See the -MM option for more on how Zip handles patterns that are not
 | 
						|
matched and files that are not readable.  If some files were skipped, a
 | 
						|
warning is issued at the end of the Zip operation noting how many files
 | 
						|
were read and how many skipped.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Comments
 | 
						|
.br
 | 
						|
One-line comments may be included in the archive for each file added,
 | 
						|
using the -c (--entry-comments) option.  File operations (adding,
 | 
						|
updating) are done first, and the user is then prompted for a one-line
 | 
						|
comment for each file added or updated.  Enter the comment followed by
 | 
						|
<Return>, or just <Return> for no comment.
 | 
						|
.sk
 | 
						|
A single multi-line comment may be included for the archive as a whole,
 | 
						|
using the -z (--archive-comment) option.  UnZip (including UnZip SFX)
 | 
						|
will display this comment when it expands the archive.  The comment is
 | 
						|
read from SYS$INPUT (stdin), and is terminated by the usual end-of-file
 | 
						|
character, CTRL/Z.  As usual, in a DCL command procedure, these data can
 | 
						|
be included in-line in the procedure, or a user may DEFINE SYS$INPUT to
 | 
						|
a file to get the comment from that file.  Where supported, the DCL PIPE
 | 
						|
command can also be used to redirect SYS$INPUT from a file.
 | 
						|
.sk
 | 
						|
Note that -z (--archive-comment) and -@ (read file specifications from
 | 
						|
SYS$INPUT (stdin)) can't be used together (successfully).
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Compression
 | 
						|
.br
 | 
						|
Zip can archive files with or without compression.  The standard
 | 
						|
compression method ("deflate") is compatible with all UnZip versions
 | 
						|
(except really old ones that only understand the "store" method). 
 | 
						|
Current Zip and UnZip versions may be built with optional support for
 | 
						|
the bzip2 compression method.  (The bzip2 method can compress better,
 | 
						|
especially when compressing smaller files, but uses more CPU time, and
 | 
						|
requires an UnZip which includes the optional bzip2 support.  See the
 | 
						|
installation instructions for details on adding bzip2 compression
 | 
						|
support at build time.)
 | 
						|
.sk
 | 
						|
Numeric compression level options control the effort put into data
 | 
						|
compression, with -1 being the fastest, and -9 giving the most
 | 
						|
compression.
 | 
						|
.sk
 | 
						|
Compression control options:
 | 
						|
.sk;.lm +10;.literal
 | 
						|
-Z mthd                      use compress method "mthd",
 | 
						|
--compression-method mthd    "bzip2" or "deflate" (default)
 | 
						|
 | 
						|
-0  (--store)                no compression
 | 
						|
-1  (--compress-1)           compression level 1
 | 
						|
-2  (--compress-2)           compression level 2
 | 
						|
-3  (--compress-3)           compression level 3
 | 
						|
-4  (--compress-4)           compression level 4
 | 
						|
-5  (--compress-5)           compression level 5
 | 
						|
-6  (--compress-6)           compression level 6
 | 
						|
-7  (--compress-7)           compression level 7
 | 
						|
-8  (--compress-8)           compression level 8
 | 
						|
-9  (--compress-9)           compression level 9
 | 
						|
.end literal;.lm -10
 | 
						|
.sk
 | 
						|
Normally, a file which is already compressed will not be compressed much 
 | 
						|
further (if at all) by Zip, and trying to do it can waste considerable
 | 
						|
CPU time.  Zip can suppress compression on files with particular types,
 | 
						|
specified as a colon- or semi-colon-separated list of file types:
 | 
						|
.sk;.indent 10
 | 
						|
-n type1[:type2[...]]  (--suffixes type1[:type2[...]])
 | 
						|
.sk
 | 
						|
For example:
 | 
						|
.sk;.indent 10
 | 
						|
zip -n .bz2:.gz:.jpeg:.jpg:.mp3:.zip foo [.foo]*.*
 | 
						|
.sk
 | 
						|
will put everything (";0") from [.foo] into foo.zip, but will store any
 | 
						|
files that end in .bz2, .gz, .jpeg, .jpg, .mp3, or .zip, without trying
 | 
						|
to compress them.
 | 
						|
.sk
 | 
						|
The default type list is .Z:.zip:.zoo:.arc:.lzh:.arj, and the comparison
 | 
						|
is case-insensitive.
 | 
						|
.sk
 | 
						|
-9 (--compress-9) will override -n (--suffixes), causing compression to
 | 
						|
be attempted for all files.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Encryption
 | 
						|
.br
 | 
						|
Zip offers optional encryption, using a method which by modern standards
 | 
						|
is generally considered to be weak.
 | 
						|
.sk;.literal
 | 
						|
-e  --encrypt
 | 
						|
.end literal;.br
 | 
						|
Encrypt new or updated archive entries using a password which is
 | 
						|
supplied by the user interactively on the terminal in response to a
 | 
						|
prompt.  (The password will not be echoed.)  If SYS$COMMAND is not a
 | 
						|
terminal, Zip will exit with an error.  The password is verified before
 | 
						|
being accepted.
 | 
						|
.sk;.literal
 | 
						|
-P password  --password password
 | 
						|
.end literal;.br
 | 
						|
Use "password" to encrypt new or updated archive entries (if any). 
 | 
						|
USING -P IS INSECURE!   Many multi-user operating systems provide ways
 | 
						|
for any user (or a privileged user) to see the current command line of
 | 
						|
any other user.  Even on more secure systems, there is always the threat
 | 
						|
of over-the-shoulder peeking.  Storing the plaintext password as part of 
 | 
						|
a command line in a command procedure is even less secure.  Whenever
 | 
						|
possible, use the non-echoing, interactive password entry method.
 | 
						|
.sk
 | 
						|
Because standard Zip encryption is weak, where security is truly
 | 
						|
important, use a strong encryption program, such as Pretty Good Privacy
 | 
						|
(PGP) or GNU Privacy Guard (GnuPG), on an archive instead of standard
 | 
						|
Zip encryption.  A stronger encryption method, such as AES, is planned
 | 
						|
for Zip 3.1.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Exit_Status
 | 
						|
.br
 | 
						|
On VMS, Zip's UNIX-style exit values are mapped into VMS-style status
 | 
						|
codes with facility code 1955 = %x7A3, and with the inhibit-message
 | 
						|
(%x10000000) and facility-specific (%x00008000) bits set:
 | 
						|
.sk
 | 
						|
.literal
 | 
						|
   %x17A38001                        normal exit
 | 
						|
   %x17A38000+ 16* Zip_error_code    warnings
 | 
						|
   %x17A38002+ 16* Zip_error_code    normal errors
 | 
						|
   %x17A38004+ 16* Zip_error_code    fatal errors
 | 
						|
.end literal
 | 
						|
.sk
 | 
						|
Note that multiplying the UNIX-style Zip error code by 16 places it
 | 
						|
conveniently in the hexadecimal representation of the VMS exit code,
 | 
						|
"__" in %x17A38__s, where "s" is the severity code.  For example, a
 | 
						|
truncated archive might cause Zip error code 2, which would be
 | 
						|
transformed into the VMS exit status %x17A38024.
 | 
						|
.sk
 | 
						|
The Zip VMS exit codes include severity values which approximate those
 | 
						|
defined by PKWARE, as shown in the following table:
 | 
						|
.literal
 | 
						|
 | 
						|
    VMS      Zip err
 | 
						|
  severity    code     Error description
 | 
						|
 ----------+---------+----------------------------------------------
 | 
						|
  Success       0      Normal; no errors or warnings detected.
 | 
						|
  Fatal         2      Unexpected end of archive.
 | 
						|
  Error         3      A generic error in the  archive  format  was
 | 
						|
                       detected.   Processing  may  have  completed
 | 
						|
                       successfully anyway;  some  broken  archives
 | 
						|
                       created by other archivers have simple work-
 | 
						|
                       arounds.
 | 
						|
  Fatal         4      Zip was unable to allocate memory for one or
 | 
						|
                       more  buffers during program initialization.
 | 
						|
  Fatal         5      A severe error in  the  archive  format  was
 | 
						|
                       detected.   Processing probably failed imme-
 | 
						|
                       diately.
 | 
						|
  Error         6      Entry too large to be split with zipsplit.
 | 
						|
  Error         7      Invalid comment format.
 | 
						|
  Fatal         8      Zip -T failed or out of memory.
 | 
						|
  Error         9      The user aborted zip prematurely  with  con-
 | 
						|
                       trol-C (or equivalent).
 | 
						|
  Fatal        10      Zip  encountered an error while using a temp
 | 
						|
                       file.
 | 
						|
  Fatal        11      Read or seek error.
 | 
						|
  Warning      12      Zip has nothing to do.
 | 
						|
  Error        13      Missing or empty zip file.
 | 
						|
  Fatal        14      Error writing to a file.
 | 
						|
  Fatal        15      Zip was unable to create a file to write to.
 | 
						|
  Error        16      Bad command line parameters.
 | 
						|
  Error        18      Zip could not open a specified file to read.
 | 
						|
  Fatal        19      Zip was built with options not supported  on
 | 
						|
                       this system
 | 
						|
  Fatal        20      Attempt to read unsupported Zip64 archive
 | 
						|
.end literal
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Extra_Fields
 | 
						|
.br
 | 
						|
The .ZIP file format allows some extra data to be stored with a file in
 | 
						|
the archive.  For example, where local time zone information is
 | 
						|
available, Zip can store UTC date-time data for files.  (Look for
 | 
						|
USE_EF_UT_TIME in a "zip -v" report.)  On VMS, with -V or -VV, Zip will
 | 
						|
also store VMS-specific file attributes.  These data are packaged as
 | 
						|
"extra fields" in the archive.  Some extra fields are specific to a
 | 
						|
particular operating system (like VMS file attributes).  Large files
 | 
						|
(bigger than 4GB) on any OS require an extra field to hold their 64-bit
 | 
						|
size data.  Depending on the capabilities of the UnZip program used to
 | 
						|
expand the archive, these extra fields may be used or ignored when files
 | 
						|
are extracted from the archive.
 | 
						|
.sk
 | 
						|
Some extra fields, like UTC date-times or VMS file attributes, are
 | 
						|
optional.  Others, like the Zip64 extra field which holds 64-bit sizes
 | 
						|
for a large file, are required.
 | 
						|
.sk
 | 
						|
The -X (--strip-extra) option suppresses the saving of any optional
 | 
						|
extra fields in the archive.  (Thus, -X conflicts with -V or -VV.)
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Environment
 | 
						|
.br
 | 
						|
A user can specify default command-line options and arguments by
 | 
						|
defining an "environment variable" (that is, a logical name or DCL
 | 
						|
symbol), "ZIP_OPTS" or "ZIPOPT", to specify them.  If both "ZIP_OPTS" and
 | 
						|
"ZIPOPT" are specified, the definition of "ZIPOPT" prevails.
 | 
						|
.sk
 | 
						|
The C RTL function getenv() is used to sense these variables, so its
 | 
						|
behavior determines what happens if both a logical name and a symbol are
 | 
						|
defined.  As of VMS V7.3, a logical name supercedes a symbol.
 | 
						|
.sk
 | 
						|
The "zip -v" report should show the perceived settings of these
 | 
						|
variables.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 File_Names
 | 
						|
.br
 | 
						|
Zip deals with file names in the system file system and with file names
 | 
						|
in Zip archives.  File names in a Zip archive are stored in a UNIX-like
 | 
						|
path-name format.  For example, a VMS file specification like this:
 | 
						|
.sk;.indent 10
 | 
						|
[.zip30.vms]descrip.mms
 | 
						|
.sk
 | 
						|
could appear in a Zip archive as:
 | 
						|
.sk;.indent 10
 | 
						|
zip30/vms/descrip.mms
 | 
						|
.sk
 | 
						|
For security reasons, paths in Zip archives are always stored as
 | 
						|
relative paths, so an absolute VMS directory specification will be
 | 
						|
transformed to a relative path in the archive (that is, no leading "/"). 
 | 
						|
For example, the following absolute directory specification would give
 | 
						|
the same archive path as the previous (relative) example:
 | 
						|
.sk;.indent 10
 | 
						|
[zip30.vms]descrip.mms
 | 
						|
.sk
 | 
						|
Also, device names are dropped, so the following file specification
 | 
						|
would also give the same archive path:
 | 
						|
.sk;.indent 10
 | 
						|
sys$sysdevice:[zip30.vms]descrip.mms
 | 
						|
.sk
 | 
						|
If an archive is intended for use with PKUNZIP under MSDOS, then the -k
 | 
						|
(for "Katz", --DOS-names) option should be used to attempt to adjust the
 | 
						|
names and paths to conform to MSDOS character-set and length
 | 
						|
limitations, to store only the MSDOS file attributes (just the
 | 
						|
owner:write attribute from VMS), and to mark the entry as made under
 | 
						|
MSDOS (even though it wasn't).
 | 
						|
.sk
 | 
						|
Note that file specifications in the file system must be specified using
 | 
						|
VMS notation, but file names in an archive must be specified using the
 | 
						|
UNIX-like notation used in the archive.  For example, where a BACKUP
 | 
						|
command might look like this:
 | 
						|
.sk.indent 10
 | 
						|
$ back [.zip30...]*.* /excl = [...vms]*.c stuff.bck /save
 | 
						|
.sk
 | 
						|
a corresponding Zip command might look like this:
 | 
						|
.sk;.indent 10;
 | 
						|
$ zip stuff.zip [.zip30...]*.* -x */vms/*.c
 | 
						|
.sk
 | 
						|
because the files to be added to the Zip archive are specified using VMS
 | 
						|
file specifications, but the -x (--exclude) option excludes names based
 | 
						|
on their archive path/file names.  Options dealing with archive names
 | 
						|
include -R (--recurse-patterns), -d (--delete), -i (--include), -x
 | 
						|
(--exclude), and -U (--copy-entries).
 | 
						|
.sk
 | 
						|
Note: By default, on VMS, archive name pattern matching (-R, -d, -i, -x,
 | 
						|
and -U) is case sensitive, even when the file system is not case
 | 
						|
sensitive (or even case preserving).  This allows accurate matching of
 | 
						|
mixed-case names in an archive which may have been created on a system
 | 
						|
with a case sensitive file system, but it can involve extra effort on
 | 
						|
VMS, where it may be necessary to use unnatural case names (or the same
 | 
						|
names in multiple cases, like "*.obj *.OBJ") for this kind of pattern
 | 
						|
matching to give the desired behavior.  If completely case-blind pattern
 | 
						|
matching behavior is desired, specify the -ic (--ignore-case) option.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
3 Case
 | 
						|
.br
 | 
						|
For better compatibility with UNIX-like systems, Zip, by default,
 | 
						|
down-cases ODS2 file names.  For example, the following file on an ODS2
 | 
						|
file system:
 | 
						|
.sk;.indent 10
 | 
						|
[.ZIP30.VMS]DESCRIP.MMS
 | 
						|
.sk
 | 
						|
would appear in an archive as:
 | 
						|
.sk;.indent 10
 | 
						|
zip30/vms/descrip.mms
 | 
						|
.sk
 | 
						|
Zip versions before 3.0 down-cased all VMS file names.  Now, various
 | 
						|
options give the user control over these conversions:
 | 
						|
.sk
 | 
						|
.lm +10;.literal
 | 
						|
-C    preserve case of all file names
 | 
						|
-C-   down-case all file names
 | 
						|
-C2   preserve case of ODS2 names
 | 
						|
-C2-  down-case ODS2 file names (default)
 | 
						|
-C5   preserve case of ODS5 names (default)
 | 
						|
-C5-  down-case ODS5 file names
 | 
						|
.end literal;.lm -10
 | 
						|
.sk
 | 
						|
Case is handled differently for archive member names, which the user
 | 
						|
specifies with the -R, -d, -i, -x, and -U options.  By default, on VMS,
 | 
						|
archive name pattern matching is case sensitive, even when the file
 | 
						|
system is not case sensitive (or even case preserving).  This allows
 | 
						|
accurate matching of mixed-case names in an archive which may have been
 | 
						|
created on a system with a case sensitive file system, but it can
 | 
						|
involve extra effort on VMS, where it may be necessary to use unnatural
 | 
						|
case names (or the same names in multiple cases, like "*.obj *.OBJ") for
 | 
						|
this kind of pattern matching to give the desired behavior.  If
 | 
						|
completely case-blind pattern matching behavior is desired, specify the
 | 
						|
-ic (--ignore-case) option.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Fixing_Damage
 | 
						|
.br
 | 
						|
Two options can be used to fix a damaged Zip archive.
 | 
						|
.sk;.literal
 | 
						|
-F  --fix
 | 
						|
-FF  --fixfix
 | 
						|
.end literal;.sk
 | 
						|
The -F (--fix) option can be used if some portions of the archive are
 | 
						|
missing, but it requires a reasonably intact central directory.  The
 | 
						|
input archive is scanned as usual, but zip will ignore some problems. 
 | 
						|
The resulting archive should  be valid, but any inconsistent entries
 | 
						|
will be left out.
 | 
						|
.sk
 | 
						|
If the archive is too damaged or the end (where the central directory is
 | 
						|
situated) has been truncated, you must use -FF (--fixfix).  This is a
 | 
						|
change from zip 2.32, where the -F option is able to read a truncated
 | 
						|
archive.  The -F option now more reliably fixes archives with minor 
 | 
						|
damage, and the -FF option is needed to fix archives where -F and -FF
 | 
						|
was used before.
 | 
						|
.sk
 | 
						|
With -FF, the archive is scanned from the beginning and Zip scans for
 | 
						|
special signatures to identify the limits between the archive members.
 | 
						|
The -F option is more reliable if the archive is not too much damaged,
 | 
						|
so try this option first.
 | 
						|
.sk
 | 
						|
Neither option will recover archives that have been incorrectly
 | 
						|
transferred, such as by FTP in ASCII mode instead of binary.  After the
 | 
						|
repair, the -t option of UnZip may show that some files have a bad CRC.
 | 
						|
Such files cannot be recovered; you can remove them from the archive
 | 
						|
using the -d option of Zip.
 | 
						|
.sk
 | 
						|
Because of the uncertainty of the "fixing" process, it's required
 | 
						|
to specify an output archive, rather than risking further damage to the
 | 
						|
original damaged archive.  For example, to fix the damaged archive
 | 
						|
foo.zip,
 | 
						|
.sk;.indent 10
 | 
						|
zip -F foo --out foo_fix
 | 
						|
.sk
 | 
						|
tries to read the entries normally, copying good entries to the new 
 | 
						|
archive foo_fix.zip.  If this doesn't work, as when the archive is
 | 
						|
truncated, or if some entries are missed because of bad central
 | 
						|
directory entries, try -FF:
 | 
						|
.sk;.indent 10
 | 
						|
zip -FF foo --out foo_fixfix
 | 
						|
.sk
 | 
						|
and compare the resulting archive to the archive created using -F. The
 | 
						|
-FF option may create an inconsistent archive.  Depending on what is
 | 
						|
damaged, you can then use the -F option to fix that archive.
 | 
						|
.sk
 | 
						|
A split archive with missing split files can be fixed using -F if you
 | 
						|
have the last split of the archive (the ".zip" file).  If this file is
 | 
						|
missing, you must use -FF to fix the archive, which will prompt you for
 | 
						|
the splits you have.
 | 
						|
.sk
 | 
						|
Currently, the fix options can't recover an entry which has a bad
 | 
						|
checksum or is otherwise damaged.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Log_File
 | 
						|
.br
 | 
						|
Zip normally sends messages to the user's terminal, but these may be
 | 
						|
also directed to a log file.
 | 
						|
.sk;.literal
 | 
						|
-la  --log-append
 | 
						|
.end literal;.br
 | 
						|
Append to an existing log file.  Default is to create a new version.
 | 
						|
.sk;.literal
 | 
						|
-lf logfilepath  --logfile-path logfilepath
 | 
						|
.end literal;.br
 | 
						|
Open a logfile at the given path.  By default, a new version will be
 | 
						|
created, but with the -la option an existing file will be opened and the
 | 
						|
new log information appended to any existing information.  Only
 | 
						|
warnings and errors are written to the log unless the -li option is also
 | 
						|
given, then all information messages are also written to the log.
 | 
						|
.sk;.literal
 | 
						|
-li  --log-info
 | 
						|
.end literal;.br
 | 
						|
Include information messages, such as file names being zipped, in the
 | 
						|
log.  The default is to include only the command line, any warnings
 | 
						|
and errors, and the final status.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Modes_of_Operation
 | 
						|
.br
 | 
						|
Zip supports two distinct types of command modes, external and 
 | 
						|
internal.  The external modes (update, grow, and freshen) read files
 | 
						|
from the file system (as well as from an existing archive) while the
 | 
						|
internal modes (delete and copy) operate exclusively on entries in an
 | 
						|
existing archive.
 | 
						|
.sk;.literal
 | 
						|
-u  --update
 | 
						|
.end literal;.br
 | 
						|
Update existing entries and add new files.  If the archive does not
 | 
						|
exist, create it.  This is the default mode, so -u is optional.
 | 
						|
.sk;.literal
 | 
						|
-g  --grow
 | 
						|
.end literal;.br
 | 
						|
Grow (append to) the specified Zip archive, instead of creating a new
 | 
						|
one.  If this operation fails, Zip attempts to restore the archive to
 | 
						|
its original state.  If the restoration fails, the archive might become 
 | 
						|
corrupted.  This option is ignored when there's no existing archive or
 | 
						|
when at least one archive member must be updated or deleted.
 | 
						|
.sk;.literal
 | 
						|
-f  --freshen
 | 
						|
.end literal;.br
 | 
						|
Update existing entries in an existing archive.  Does not add new files
 | 
						|
to the archive.
 | 
						|
.sk;.literal
 | 
						|
-d  --delete
 | 
						|
.end literal;.br
 | 
						|
Delete entries from an existing archive.
 | 
						|
.sk;.literal
 | 
						|
-DF  --difference-archive
 | 
						|
.end literal;.br
 | 
						|
Create an incremental backup-style archive, where the resulting archive 
 | 
						|
will contain all new and changed files since the original archive was
 | 
						|
created.  For this to work, the input file list and current directory 
 | 
						|
must be the same as during the original Zip operation.
 | 
						|
.sk
 | 
						|
For example, if the existing archive was created using
 | 
						|
.sk;.indent 10
 | 
						|
zip foo_full.zip [.foo...]*.*
 | 
						|
.sk
 | 
						|
from just above the foo directory, then the command (also from just
 | 
						|
above the foo directory):
 | 
						|
.sk;.indent 10
 | 
						|
zip foo_full.zip [.foo...]*.* -DF -O foo_incr.zip
 | 
						|
.sk
 | 
						|
creates the archive foo_incr.zip with just the files not in foo_full.zip
 | 
						|
and the files where the size or date-time of the files does not match
 | 
						|
that in foo_full.zip.  Note that in the "zip -DF" operation, the
 | 
						|
original full archive is specified as the input archive, and the -O
 | 
						|
(--output-file) option is used to specify the new (incremental) output
 | 
						|
archive.
 | 
						|
.sk;.literal
 | 
						|
-FS  --filesync
 | 
						|
.end literal;.br
 | 
						|
Delete entries in the archive that do not match files on the OS.
 | 
						|
Normally when an archive is updated, new files are added and changed
 | 
						|
files are updated but files that no longer exist on the OS are not
 | 
						|
deleted from the archive.  This option enables deleting of entries that
 | 
						|
are not matched on the OS.  Enabling this option should create archives
 | 
						|
that are the same as new archives, but since existing entries are copied
 | 
						|
instead of compressed, updating an existing archive with -FS can be much
 | 
						|
faster than creating a new archive.  If few files are being copied from
 | 
						|
the old archive, it may be faster to create a new archive instead.
 | 
						|
.sk
 | 
						|
This option deletes files from the archive.  If you need to preserve the
 | 
						|
original archive, make a copy of the archive first, or use the  -O
 | 
						|
(--output) option to output the new archive to a new file.  Even though
 | 
						|
it's slower, creating a new archive with a new archive name is safer, 
 | 
						|
avoids mismatches between archive and OS paths, and is preferred.
 | 
						|
.sk;.literal
 | 
						|
-U  --copy-entries
 | 
						|
.end literal;.br
 | 
						|
Select entries in an existing archive and copy them to a new archive. 
 | 
						|
Copy mode is like update mode, but entries in the existing archive are
 | 
						|
selected by command line patterns rather than files from the file system
 | 
						|
and it uses the -O (--output-file) option to write the resulting archive
 | 
						|
to a new file rather than updating the existing archive, leaving the
 | 
						|
original archive unchanged.
 | 
						|
.sk
 | 
						|
Normally, when updating an archive using relative file specifications
 | 
						|
("[]", "[.xxx]", and so on), it helps to have the same default directory
 | 
						|
as when the archive was created, but this is not a strict requirement.
 | 
						|
.sk
 | 
						|
Date-time information in a Zip archive may be influenced by time zone.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
3 Examples
 | 
						|
.br
 | 
						|
When given the name of an existing archive, Zip will replace identically
 | 
						|
named entries in the archive or add entries for new names.  For example,
 | 
						|
if foo.zip exists and contains foo/file1 and foo/file2, and the
 | 
						|
directory [.foo] contains the files file1 and file3, then:
 | 
						|
.sk;.indent 10
 | 
						|
$ zip foo [.foo...]*.*
 | 
						|
.sk
 | 
						|
will replace foo/file1 in foo.zip and add foo/file3 to foo.zip.  After
 | 
						|
this, foo.zip contains foo/file1, foo/file2, and foo/file3, with foo/file2
 | 
						|
unchanged from before.  This is the default mode -u (update).
 | 
						|
.sk
 | 
						|
Update will add new entries to the archive and will replace
 | 
						|
existing entries only if the modified date of the file is more recent than
 | 
						|
the date recorded for that name in the archive.  For example:
 | 
						|
.sk;.indent 10
 | 
						|
$ zip -u stuff *.*
 | 
						|
.sk
 | 
						|
will add any new files in the current directory, and update any changed
 | 
						|
files in the archive stuff.zip.  Note that Zip will not try to pack
 | 
						|
stuff.zip into itself when you do this.  Zip avoids including its own
 | 
						|
output files when selecting files to include in the archive, so it
 | 
						|
should be safe, as in this case, to have the archive included in the
 | 
						|
list of input files.
 | 
						|
.sk
 | 
						|
A second mode, -f (freshen), like update will only
 | 
						|
replace entries with newer files.  Unlike update, however, it will not
 | 
						|
add files that are not already in the archive.  For example:
 | 
						|
.sk;.indent 10
 | 
						|
$ zip -f foo
 | 
						|
.sk
 | 
						|
Note that the -f option with no arguments freshens all the entries in the
 | 
						|
archive.  The same is true of -u, so "zip -u foo" and "zip -f foo" do
 | 
						|
the same thing.
 | 
						|
.sk
 | 
						|
When these options are used, Zip should be run from the same directory
 | 
						|
as when the original Zip command was run, so that the path names in the
 | 
						|
archive will continue to agree with the path names in the file system. 
 | 
						|
Normally, it's also a good idea to keep the other options the same (-V,
 | 
						|
-w, and the like), to keep the archive contents consistent.
 | 
						|
.sk
 | 
						|
The -t (--from-date) and -tt (--before-date) options can also be used
 | 
						|
with adding, updating, or freshening to restrict further the files to be
 | 
						|
included in the archive.  For example:
 | 
						|
.sk;.indent 10
 | 
						|
$ zip -rt 12071991 infamy [.FOO]*.*
 | 
						|
.sk
 | 
						|
will add all the files in [.FOO] and its subdirectories that were last
 | 
						|
modified on December 7, 1991, or later to the achive infamy.zip.  Dates
 | 
						|
can be in format mmddyyyy or yyyy-mm-dd.
 | 
						|
.sk
 | 
						|
Also, files can be explicitly excluded using the -x option:
 | 
						|
.sk;.indent 10
 | 
						|
$ zip -r foo [.FOO] -x *.obj
 | 
						|
.sk
 | 
						|
which will zip up the contents of [.FOO] into foo.zip but exclude all the
 | 
						|
files that end in ".obj".
 | 
						|
.sk
 | 
						|
The -d (delete) mode will remove entries from an
 | 
						|
archive.  An example might be:
 | 
						|
.sk;.indent 10
 | 
						|
$ zip -d foo foo/harry/*.* *.obj
 | 
						|
.sk
 | 
						|
which will remove all of the files that start with "foo/harry/" and all of
 | 
						|
the files that end with ".obj" (in any path).
 | 
						|
.sk
 | 
						|
The last mode, -U (--copy-entries), selects entries from an existing
 | 
						|
archive and copies them to a new archive.
 | 
						|
.sk;.indent 10
 | 
						|
$ zip -U foo *.obj --out fooobj
 | 
						|
.sk
 | 
						|
will copy all .obj entries from foo.zip and put them in the new archive
 | 
						|
fooobj.zip.
 | 
						|
.sk
 | 
						|
Note: By default, on VMS, archive name pattern matching (-R, -d, -i, -x,
 | 
						|
and -U) is case sensitive, even when the file system is not case
 | 
						|
sensitive (or even case preserving).  This allows accurate matching of
 | 
						|
mixed-case names in an archive which may have been created on a system
 | 
						|
with a case sensitive file system, but it can involve extra effort on
 | 
						|
VMS, where it may be necessary to use unnatural case names (or the same
 | 
						|
names in multiple cases, like "*.obj *.OBJ") for this kind of pattern
 | 
						|
matching to give the desired behavior.  If completely case-blind pattern
 | 
						|
matching behavior is desired, specify the -ic (--ignore-case) option.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Options_List
 | 
						|
.br
 | 
						|
"zip -h" provides a concise list of common command-line options.  "zip
 | 
						|
-h2" provides more details.  "zip -so" provides a list of all available
 | 
						|
options.  "zip -v" shows the program version and available features. 
 | 
						|
(The list below was derived from a "zip -so" listing.)
 | 
						|
.sk
 | 
						|
Short-form options begin with a single hyphen ("-").  Long-form option
 | 
						|
begin with a double hyphen ("--"), and may be abbreviated to any
 | 
						|
unambiguous shorter string.  For example:
 | 
						|
.lm +10;.literal
 | 
						|
-v
 | 
						|
--verbose
 | 
						|
--verb
 | 
						|
.end literal;.lm -10
 | 
						|
.sk
 | 
						|
To avoid confusion, if a negatable option contains an embedded hyphen
 | 
						|
("-"), then avoid abbreviating it at the hyphen if you plan to negate
 | 
						|
it.  For example, if an option like --some-option were abbreviated to
 | 
						|
--some-, the parser would consider that trailing hyphen to be part of
 | 
						|
the option name, rather than as a negating trailing hyphen.  This
 | 
						|
behavior may change in the future, to interpret the trailing hyphen in
 | 
						|
--some- to be negating.  (So don't do it.)
 | 
						|
.sk
 | 
						|
Some options may be negated (or modified) by appending a "-":
 | 
						|
.lm +10;.literal
 | 
						|
-la-
 | 
						|
--show-files-
 | 
						|
.end literal;.lm -10
 | 
						|
.sk
 | 
						|
Some options take a value, which may immediately follow the option, or
 | 
						|
be separated by a space or "=".  For example:
 | 
						|
.lm +10;.literal
 | 
						|
-ttmmddyyyy
 | 
						|
-tt mmddyyyy
 | 
						|
-tt=mmddyyyy
 | 
						|
.end literal;.lm -10
 | 
						|
.sk
 | 
						|
.lm -4;.literal
 | 
						|
 Sh  Long                Description
 | 
						|
----+-------------------+--------------------------------------------------
 | 
						|
 0   store               store (instead of compress)
 | 
						|
 1   compress-1          compress faster (-2, -3, -4, ...)
 | 
						|
 9   compress-9          compress better
 | 
						|
 ?                       show the Zip help screen
 | 
						|
 @   names-stdin         read input file patterns from SYS$INPUT (1/line)
 | 
						|
 A   adjust-sfx          adjust self-extracting executable
 | 
						|
 b   temp-path  path     use "path" directory for temporary files
 | 
						|
 C   preserve-case       preserve case of all file names added to archive
 | 
						|
 C-  preserve-case-      down-case all file names added to archive
 | 
						|
 C2  preserve-case-2     preserve case of ODS2 names added to archive
 | 
						|
 C2- preserve-case-2-    down-case ODS2 file added to archive (default)
 | 
						|
 C5  preserve-case-5     preserve case of ODS5 names added to archive (dflt)
 | 
						|
 C5- preserve-case-5-    down-case ODS5 names added to archive
 | 
						|
 c   entry-comments      add a comment for each entry added to archive
 | 
						|
 D   no-dir-entries      do not add archive entries for directories
 | 
						|
 DF  difference-archive  difference archive: add only changed or new files
 | 
						|
 d   delete              delete entries in archive
 | 
						|
 db  display-bytes       display running byte counts
 | 
						|
 dc  display-counts      display running file counts
 | 
						|
 dd  display-dots        display progress dots for files (dflt size = 10MB)
 | 
						|
 dg  display-globaldots  display progress dots for archive, not each file
 | 
						|
 ds  dot-size   size     set progress dot interval to "size" (MB)
 | 
						|
 du  display-usize       display original uncompressed size for entries
 | 
						|
 dv  display-volume      display volume (disk) number as in_disk>out_disk
 | 
						|
 e   encrypt             encrypt entries, ask for password
 | 
						|
 F   fix                 fix mostly intact archive (try F before FF)
 | 
						|
 FF  fixfix              salvage what can be salvaged (not as reliable)
 | 
						|
 FS  filesync            remove archive entries unmatched in file system
 | 
						|
 f   freshen             update existing entries (only changed files)
 | 
						|
 fd  force-descriptors   force data descriptors as if streaming
 | 
						|
 fz  force-zip64         force use of Zip64 format
 | 
						|
 g   grow                grow existing archive (unless updating or deleting)
 | 
						|
 H                       show the Zip help screen
 | 
						|
 h   help                show the Zip help screen
 | 
						|
 h2  more-help           show extended Zip help
 | 
						|
 i   include  pat1 [pat2 [...]]  include only names matching the patterns
 | 
						|
 ic  ignore-case         ignore case (case-blind archive entry name matching)
 | 
						|
 J   junk-sfx            junk (remove) archive preamble (unzipsfx)
 | 
						|
 j   junk-paths          junk (don't store) directory names, only file names
 | 
						|
 k   DOS-names           simulate PKZIP-made archive (DOS 8.3 names)
 | 
						|
 L   license             show software license
 | 
						|
 l   to-crlf             translate end-of-lines (LF -> CRLF)
 | 
						|
 la  log-append          append to existing log file
 | 
						|
 lf  logfile-path  lfile  log to log file at lfile (default: new version)
 | 
						|
 li  log-info            include informational messages in log
 | 
						|
 ll  from-crlf           translate end-of-lines (CRLF -> LF)
 | 
						|
 MM  must-match          input file spec must exist (wildcards must match)
 | 
						|
 m   move                delete files added to archive
 | 
						|
 n   suffixes  sfx1[:sfx2[...]]  don't compress files with these suffixes
 | 
						|
 nw  no-wild             no wildcards during add or update
 | 
						|
 O   output-file  ozf  use "ozf" as the output archive (dflt = inp archive)
 | 
						|
 o   latest-time         set archive date-time to match oldest entry
 | 
						|
 P   password  password  encrypt with supplied "password" string
 | 
						|
 q   quiet               quiet operation (no info messages)
 | 
						|
 R   recurse-patterns    recurse into subdirs from cur dir, match names only
 | 
						|
 r   recurse-paths       recurse into directories from specified path pats
 | 
						|
 s   split-size  size    split archive at "size" (K/MB)  (0: don't split)
 | 
						|
 sb  split-bell          ring terminal bell at pause for split medium change
 | 
						|
 sc  show-command        show command line
 | 
						|
 sd  show-debug          show debug messages
 | 
						|
 sf  show-files          show files to process (only)
 | 
						|
 so  show-options        show list of all command-line options
 | 
						|
 sp  split-pause         pause to select split destination(s)
 | 
						|
 sv  split-verbose       be verbose about creating splits
 | 
						|
 T   test                test archive integrity (runs UnZip -T)
 | 
						|
 t   from-date  mmddyyyy  only do files since (at or after) "mmddyyyy"
 | 
						|
 tt  before-date  mmddyyyy  only do files before "mmddyyyy"
 | 
						|
 u   update              update changed files, add new files (default mode)
 | 
						|
 V   VMS-portable        save VMS file attributes
 | 
						|
 VV  VMS-specific        save VMS file attributes and all allocated blocks
 | 
						|
 v   verbose             verbose messages (print version info if only arg)
 | 
						|
 w   VMS-versions        save VMS version numbers in archive
 | 
						|
 ww  VMS-dot-versions    save VMS version numbers as ".nnn", not ";nnn"
 | 
						|
 X   strip-extra         strip all but critical extra fields
 | 
						|
 X-  strip-extra-        keep all extra fields
 | 
						|
 x   exclude  pat1 [pat2 [...]]  exclude all names matching the patterns
 | 
						|
 Z   compression-method mthd  use compress method "mthd" (bzip2 or deflate)
 | 
						|
 z   archive-comment     ask for archive comment
 | 
						|
.end literal;.lm +4
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Miscellaneous_Options
 | 
						|
.sk;.literal
 | 
						|
-D  --no-dir-entries
 | 
						|
.end literal;.br
 | 
						|
Do not create entries in the archive for directories.  By default,
 | 
						|
directory entries are added to an archive, so that their attributes can
 | 
						|
be saved in the archive.  When an archive is created using -D, UnZip
 | 
						|
will still create directories as needed (subject to user control), but
 | 
						|
they will get the default attributes (date-time, permissions, ...) on
 | 
						|
the destination system, rather than their original atributes.
 | 
						|
.sk;.literal
 | 
						|
-MM  --must-match
 | 
						|
.end literal;.br
 | 
						|
All input patterns must match at least one file and all input files 
 | 
						|
found must be readable.  Normally when an input pattern does not match
 | 
						|
a file the "name not matched" warning is issued and when an input
 | 
						|
file has been found but later is missing or not readable a "missing or
 | 
						|
not readable" warning is issued.  In either case Zip continues
 | 
						|
creating the archive, with missing or unreadable new files being skipped 
 | 
						|
and files already in the archive remaining unchanged.  After the
 | 
						|
archive is created, if any files were not readable zip returns the OPEN
 | 
						|
error code (18 on most systems) instead of the normal success return (0
 | 
						|
on most systems).  With -MM, Zip exits as soon as an input pattern
 | 
						|
is not matched (whenever the "name not matched" warning would be issued)
 | 
						|
or when an input file is not readable. In either case Zip exits with
 | 
						|
an OPEN error and no archive is created.
 | 
						|
.sk
 | 
						|
This option is useful when a known list of files is to be zipped so any
 | 
						|
missing or unreadable files should result in an error.  It may be less
 | 
						|
useful when used with wildcards, but Zip will still exit with an error
 | 
						|
if any input pattern doesn't match at least  one file or if any
 | 
						|
matched files are unreadable.  If you want to create the archive anyway
 | 
						|
and only need to know if files were skipped, then don't use -MM and just
 | 
						|
check the exit status.  Also, a log file (see -lf (--logfile-path))
 | 
						|
could be useful.
 | 
						|
.sk;.literal
 | 
						|
-O out_file  --output-file out_file
 | 
						|
.end literal;.br
 | 
						|
Process the archive changes as usual, but instead of updating the
 | 
						|
existing archive, send the output to a new archive, "out_file".  The
 | 
						|
output archive specified must be a different file from the input
 | 
						|
archive.
 | 
						|
.sk
 | 
						|
This option can be used to create updated split archives.  It can
 | 
						|
also be used with -U to copy entries from an existing archive to
 | 
						|
a new archive.  See the EXAMPLES section below.
 | 
						|
.sk
 | 
						|
Another use is converting zip files from one split size to
 | 
						|
another.  For instance, to convert an archive with 700MB CD splits
 | 
						|
to one with 2GB DVD splits, can use:
 | 
						|
.sk;.indent 10
 | 
						|
zip -s 2g cd-split.zip --out dvd-split.zip
 | 
						|
.sk
 | 
						|
which uses copy mode.  See -U below.  Also:
 | 
						|
.sk;.indent 10
 | 
						|
zip -s 0 split.zip --out unsplit.zip
 | 
						|
.sk
 | 
						|
will convert a split archive to a single-file archive.
 | 
						|
.sk
 | 
						|
Copy mode will convert stream entries (using data descriptors and which
 | 
						|
may be incompatible with some unzip programs) to normal entries (which
 | 
						|
should be compatible with all unzip programs), except if standard
 | 
						|
encryption was  used.  For archives with encrypted entries, zipcloak
 | 
						|
will decrypt the entries and convert them to normal entries.
 | 
						|
.sk;.literal
 | 
						|
-o  --latest-time
 | 
						|
.end literal;.br
 | 
						|
Set the modification date-time of the Zip archive file to the latest
 | 
						|
(newest) modification date-time found among the entries in the zip
 | 
						|
archive.  This can be used without any other operations, if
 | 
						|
desired.  For example:
 | 
						|
.sk;.indent 10
 | 
						|
zip -o foo
 | 
						|
.sk
 | 
						|
will change the modification date-time of foo.zip to the latest time of
 | 
						|
the entries in foo.zip.
 | 
						|
.sk;.literal
 | 
						|
-q  --quiet
 | 
						|
.end literal;.br
 | 
						|
Quiet mode.  Eliminates informational messages and comment prompts. 
 | 
						|
This mode may be useful in command procedures, or if the Zip operation
 | 
						|
is being performed as a background task ("$ spawn/nowait zip -q foo
 | 
						|
*.c").
 | 
						|
.sk
 | 
						|
.sk;.literal
 | 
						|
-T  --test
 | 
						|
.end literal;.br
 | 
						|
Test the integrity of a zip archive (the new one, if -O (--output-file)
 | 
						|
is specified).  If the check fails, the old zip file is unchanged  and
 | 
						|
(with the -m option) no input files are removed.
 | 
						|
.sk
 | 
						|
Implementation
 | 
						|
.br
 | 
						|
"zip -T" actually runs an "unzip -t" command to do the testing, so UnZip
 | 
						|
must be installed properly for this to work.
 | 
						|
.sk;.literal
 | 
						|
-TT unzip_cmd  --unzip-command unzip_cmd
 | 
						|
.end literal;.br
 | 
						|
Specify the actual UnZip command, "unzip_cmd" (normally a DCL symbol) to
 | 
						|
use for "zip -T".  This can be useful if multiple versions of UnZip are
 | 
						|
installed on a system, and the default DCL symbol "UNZIP" would run the
 | 
						|
wrong one (or the logical name DCL$PATH would lead to the wrong one).
 | 
						|
.sk
 | 
						|
In "unzip_cmd", the string "{}" is replaced by the temporary name of the
 | 
						|
archive to be tested, otherwise the name of the archive is appended
 | 
						|
to the end of the command.  The exit status is checked for success severity.
 | 
						|
.sk;.literal
 | 
						|
-v  --verbose
 | 
						|
.end literal;.br
 | 
						|
Verbose mode or print diagnostic version info.
 | 
						|
.sk
 | 
						|
Normally, when applied to real operations, this option enables the 
 | 
						|
display of a progress indicator during compression (see -dd for more on
 | 
						|
dots) and requests verbose diagnostic info about archive structure
 | 
						|
oddities.
 | 
						|
.sk
 | 
						|
When -v is the only command line argument, a diagnostic report is
 | 
						|
displayed, showing:
 | 
						|
.lm +3;.br;.indent -2
 | 
						|
o Copyright and other legal notices
 | 
						|
.br;.indent -2
 | 
						|
o Program name, version, and release date
 | 
						|
.br;.indent -2
 | 
						|
o Pointers to Info-ZIP FTP and Web sites
 | 
						|
.br;.indent -2
 | 
						|
o Program build information (compiler type and version, OS version, and
 | 
						|
the compilation date
 | 
						|
.br;.indent -2
 | 
						|
o Optional features enabled at compile-time
 | 
						|
.br;.indent -2
 | 
						|
o Environment variable definitions (ZIP_OPTS, ZIPOPT)
 | 
						|
.lm -3;.br
 | 
						|
.sk
 | 
						|
This information should be included in bug reports.
 | 
						|
.sk;.literal
 | 
						|
-y  --symlinks
 | 
						|
.end literal;.br
 | 
						|
Store symbolic links as such in the Zip archive, instead of compressing
 | 
						|
and storing the file referred to by the link.  A symbolic link normally
 | 
						|
requires less storage than the actual file, both in the archive, and on
 | 
						|
the destination file system.
 | 
						|
.sk
 | 
						|
On VMS, symbolic links are supported on ODS5 disks where the C RTL
 | 
						|
supports symbolic links.  Full support for symbolic links seems to
 | 
						|
require VMS V8.3, but a Zip program supporting symbolic links may be
 | 
						|
built on VMS V7.3-2.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Progress_Display
 | 
						|
.br
 | 
						|
Various options control the display of progress messages during Zip
 | 
						|
operation.
 | 
						|
.sk;.literal
 | 
						|
-db  --display-bytes
 | 
						|
.end literal;.br
 | 
						|
Display running byte counts showing the bytes processed and the bytes to
 | 
						|
go.
 | 
						|
.sk;.literal
 | 
						|
-dc  --display-counts
 | 
						|
.end literal;.br
 | 
						|
Display running count of entries processed and entries to go.
 | 
						|
.sk;.literal
 | 
						|
-dd  --display-dots
 | 
						|
.end literal;.br
 | 
						|
Display dots while each entry is processed (except on ports that have 
 | 
						|
their own progress indicator).  See -ds below for setting dot size.  The
 | 
						|
default is a dot every 10 MB of input file processed.  The -v
 | 
						|
(--verbose) option also displays dots and used to at a higher rate than
 | 
						|
this (at the same rate as in previous versions of Zip) but this rate has
 | 
						|
been changed to the new 10 MB default, and is also controlled by -ds.
 | 
						|
.sk;.literal
 | 
						|
-dg  --display-globaldots
 | 
						|
.end literal;.br
 | 
						|
Display progress dots for the archive instead of for each file.  The
 | 
						|
command
 | 
						|
.sk;.indent 10
 | 
						|
zip -qdgds 10m
 | 
						|
.sk
 | 
						|
will turn off most output except dots every 10 MB.
 | 
						|
.sk;.literal
 | 
						|
-ds size  --dot-size size
 | 
						|
.end literal;.br
 | 
						|
Set amount of input file processed for each dot displayed.  See -dd to
 | 
						|
enable displaying dots.  Setting this option implies -dd.  "size" is in
 | 
						|
the format "nm" where n is a number and m is a multiplier.  Currently
 | 
						|
"m" can be k (KB), m (MB), g (GB), or t (TB), so if "n" is 100 and "m"
 | 
						|
is k, "size" would be 100k which is 100KB.  The default is 10MB.
 | 
						|
.sk
 | 
						|
The -v (--verbose) option also displays dots and used to default to a
 | 
						|
higher rate than this (at the same rate as in previous versions of Zip)
 | 
						|
but now the default is 10 MB and the -v dots are also controlled by this
 | 
						|
option.  A "size" of 0 turns dots off.
 | 
						|
.sk
 | 
						|
This option does not control the dots from the "Scanning files" message 
 | 
						|
as Zip scans for input files.  The dot size for that is fixed at 2
 | 
						|
seconds or a fixed number of entries, whichever is longer.
 | 
						|
.sk;.literal
 | 
						|
-du  --display-usize
 | 
						|
.end literal;.br
 | 
						|
Display the uncompressed size of each entry.
 | 
						|
.sk;.literal
 | 
						|
-dv  --display-volume
 | 
						|
.end literal;.br
 | 
						|
Display the volume (disk) number each entry is being written to.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Self_Extracting_Archives
 | 
						|
.br
 | 
						|
A self-extracting archive (SFX) comprises a normal Zip archive appended
 | 
						|
to a special UnZip program (such as UNZIPSFX.EXE) for the intended
 | 
						|
target system.
 | 
						|
.sk
 | 
						|
The UnZip distribution includes a VMS command procedure,
 | 
						|
[,vms]makesfx.com, which can be used directly or adapted to create an
 | 
						|
SFX archive from a normal Zip archive.
 | 
						|
.sk
 | 
						|
The .ZIP file format includes offsets to data structures in the archive,
 | 
						|
and these offsets are measured from the start of the archive file. 
 | 
						|
Appending an archive to an UnZip SFX executable effectively moves the
 | 
						|
start of the archive file.  That makes the original offsets wrong, and
 | 
						|
that will cause the UnZip SFX program to emit warning messages when it
 | 
						|
tries to unpack the archive.  Zip -A can be used to adjust these offsets
 | 
						|
in a self-extracting archive.  For example, to adjust the offsets in
 | 
						|
foo.sfx_exe:
 | 
						|
.sk;.indent 10
 | 
						|
zip -A foo.sfx_exe
 | 
						|
.sk
 | 
						|
Similarly, the UnZip SFX program can be removed from a self-extracting
 | 
						|
archive (and the offsets in the archive restored) using the -J
 | 
						|
(--junk-sfx) option.  For example:
 | 
						|
.sk;.indent 10
 | 
						|
zip -J foo.sfx_exe
 | 
						|
.sk
 | 
						|
Note that a self-extracting archive contains a normal Zip archive, and a
 | 
						|
normal UnZip program can be used to expand it in the normal way.  You
 | 
						|
may get a warning about extra bytes at the beginning of the archive (the
 | 
						|
UnZip SFX program), but UnZip should work properly after that.  This
 | 
						|
allows data in a self-extracting archive to be accessed on any system,
 | 
						|
not just the target system where its embedded UnZip SFX program runs.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Split_Archives
 | 
						|
.br
 | 
						|
Beginning with version 3.0, Zip supports split archives.  A split
 | 
						|
archive is one which is divided into multiple files, usually to allow it
 | 
						|
to be stored on multiple storage media (floppy diskettes, CD-ROMs, or
 | 
						|
the like) when a single medium would be too small to contain the whole
 | 
						|
archive.  (Note that split archives are not just unitary archives split
 | 
						|
into pieces, as the .ZIP file format includes offsets to data structures
 | 
						|
in the archive, and for a split archive these are based on the start of
 | 
						|
each split, not on the start of the whole archive.  Concatenating the
 | 
						|
pieces will invalidate these offsets, but UnZip can usually deal with
 | 
						|
it.  Zip will usually refuse to process such a spliced archive unless
 | 
						|
the -FF fix option is used to fix the offsets.)
 | 
						|
.sk
 | 
						|
For a split archive with, say, 20 split files, the files are typically
 | 
						|
named ARCHIVE.z01, ARCHIVE.z02, ..., ARCHIVE.z19, ARCHIVE.zip, where
 | 
						|
"ARCHIVE" is the archive name specified by the user on the Zip command
 | 
						|
line.  Note that the last split file is the ".zip" file.  In contrast,
 | 
						|
"spanned" archives are the original multi-disk archive generally
 | 
						|
requiring floppy disks and using volume labels to store disk numbers. 
 | 
						|
Zip supports split archives but not spanned archives, though a procedure
 | 
						|
exists for converting split archives of the right size to spanned
 | 
						|
archives.  The reverse is also true, where each file of a spanned
 | 
						|
archive can be copied in order to files with the above names to create a
 | 
						|
split archive.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
3 Options
 | 
						|
.br
 | 
						|
Use "-s size" to create a split archive (and to set the split size). 
 | 
						|
The size is given as a number followed optionally by a multiplier suffix
 | 
						|
of k (KB), m (MB, the default if no suffix is specified), g (GB), or t
 | 
						|
(TB).  (All are powers of 1024, not 1000).  64K is the minimum split
 | 
						|
size.  For example, the following command could be used to create a
 | 
						|
split archive called "foo" from the contents of the "bar" directory with
 | 
						|
splits of 670MB, which might be useful for burning on CDs:
 | 
						|
.sk;.indent 10
 | 
						|
zip -s 670m foo [.bar...]*.*
 | 
						|
.sk
 | 
						|
Using -s without -sp as above creates all the splits in the directory
 | 
						|
specified by "foo", in this case the current default directory.  This 
 | 
						|
split mode updates the splits as the archive is being created, requiring
 | 
						|
all splits to remain writable, but creates split archives that are
 | 
						|
readable by any UnZip that supports split archives.  See -sp below for
 | 
						|
enabling split pause mode which allows splits to be written directly to
 | 
						|
removable media.
 | 
						|
.sk
 | 
						|
The -sv option can be used to enable verbose splitting and display
 | 
						|
details of how the splitting is being done.  The -sb option can be used
 | 
						|
to ring the terminal bell when Zip pauses for the next split
 | 
						|
destination.
 | 
						|
.sk
 | 
						|
The -sp option can be used to pause Zip between splits to allow 
 | 
						|
changing removable media, for example, but read the descriptions and
 | 
						|
warnings for both -s and -sp below.
 | 
						|
.sk
 | 
						|
Though Zip does not update split archives, Zip provides the option
 | 
						|
-O (--output-file) to allow split archives to be updated and saved in a
 | 
						|
new archive.  For example:
 | 
						|
.sk;.indent 10
 | 
						|
zip inarchive.zip foo.c bar.c -O outarchive.zip
 | 
						|
.sk
 | 
						|
reads archive inarchive.zip, even if split, adds the files foo.c and
 | 
						|
bar.c, and writes the resulting archive to outarchive.zip.  If
 | 
						|
inarchive.zip is split, then outarchive.zip defaults to the same split
 | 
						|
size.  Be aware that outarchive.zip and any split files that are created
 | 
						|
with it are always overwritten without warning.  This may be changed in 
 | 
						|
the future.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Temporary_Files
 | 
						|
.br
 | 
						|
When creating a new archive or normally when changing an existing
 | 
						|
archive, Zip will write a temporary file in the archive destination
 | 
						|
directory ("ZIxxxxxxxx", where "xxxxxxxx" is the hexadecimal process ID)
 | 
						|
with the new contents.  Then, if and when the Zip job has completed with
 | 
						|
no errors, it will rename the temporary file to the specified archive
 | 
						|
name (replacing the old archive, if any).
 | 
						|
.sk
 | 
						|
You can use the -b (--temp-path) option to specify a different path
 | 
						|
(device and/or directory) for the temporary file, but specifying a
 | 
						|
different device will force Zip to copy the temporary file to its final
 | 
						|
destination instead of simply renaming it, and that copying will take
 | 
						|
more time than renaming, especially for a large archive.  For example:
 | 
						|
.sk;.indent 10
 | 
						|
$ zip -b disk$scratch:[tmp] stuff *
 | 
						|
.sk
 | 
						|
will cause Zip to put its temporary files in the directory
 | 
						|
"disk$scratch:[tmp]", copying the temporary file back to the current
 | 
						|
directory as stuff.zip when it's complete.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Text_Files
 | 
						|
.br
 | 
						|
Zip offers some options to help deal with line endings in text files. 
 | 
						|
These may have limited utility on VMS.
 | 
						|
.sk;.literal
 | 
						|
-l  --to-crlf
 | 
						|
.end literal;.br
 | 
						|
Translate the UNIX end-of-line character LF (CR on MAC) into the MSDOS
 | 
						|
convention CR-LF.  This option should not be used on binary files.  This
 | 
						|
option can be used on UNIX if the Zip file is intended for PKUNZIP under
 | 
						|
MSDOS.  If the input files already contain CR-LF, this option adds an
 | 
						|
extra CR.  This ensure that "unzip -a" on Unix will get back an exact
 | 
						|
copy of the original file, to undo the effect of "zip -l".  See -ll
 | 
						|
below for the binary checks.
 | 
						|
.sk;.literal
 | 
						|
-ll  --from-crlf
 | 
						|
.end literal;.br
 | 
						|
Translate the MSDOS end-of-line CR LF into UNIX LF (CR on MAC).  This
 | 
						|
option should not be used on binary files.  This option can be used on
 | 
						|
MSDOS if the Zip archive is intended for UnZip under UNIX.
 | 
						|
.sk
 | 
						|
For both -l and -ll, if the file is converted and the file is later
 | 
						|
determined to be binary, a warning is issued and the file is probably
 | 
						|
corrupted.  If Zip with -l or -ll detects binary (non-text) in the first
 | 
						|
buffer read from a file, it issues a warning and skips line-ending
 | 
						|
conversion on the file, avoiding corruption.  This check seems to catch
 | 
						|
all binary files tested, but the original check remains and if a
 | 
						|
converted file is later determined to be binary, that warning is still
 | 
						|
issued.  The algorithm now being used for binary detection should allow
 | 
						|
line-ending conversion of text files in UTF-8 and similar encodings.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 VMS_Specifics
 | 
						|
.br
 | 
						|
VMS File Attributes
 | 
						|
.sk;.literal
 | 
						|
-V  --VMS-portable
 | 
						|
-VV --VMS-specific
 | 
						|
.end literal;.br
 | 
						|
The -V and -VV options cause Zip to store VMS file atributes (such as
 | 
						|
file organization, record format, carriage control, and so on) in
 | 
						|
VMS-specific "extra fields" in an archive along with the usual data. 
 | 
						|
These extra fields are ignored on non-VMS systems, but on a VMS system,
 | 
						|
they allow UnZip to restore the files with their VMS attributes intact.
 | 
						|
.sk
 | 
						|
With -V, Zip ignores any data in the file after the end-of-file (EOF)
 | 
						|
point (defined by FAT$L_EFBLK and FAT$W_FFBYTE), which works well for
 | 
						|
well-formed files (that is, those with no valid data beyond EOF). 
 | 
						|
Portable-format files (Stream_LF, fixed-512) archived with -V should be
 | 
						|
extracted properly on a non-VMS system.  Files with more complex
 | 
						|
structures, such as indexed files and files with embedded byte counts
 | 
						|
or other such data may be of limited use on other systems.  (UnZip on
 | 
						|
non-VMS systems may be able to extract various VMS-format text files,
 | 
						|
however.)
 | 
						|
.sk
 | 
						|
With -VV, Zip processes all allocated blocks for the file (including
 | 
						|
those beyond EOF).  When extracted on a VMS system, the original file
 | 
						|
should be reproduced with as much fidelity as possible, but on a non-VMS
 | 
						|
system, most files will be seen as corrupt because of the data from
 | 
						|
beyond EOF.
 | 
						|
.sk
 | 
						|
VMS File Version Numbers
 | 
						|
.sk;.literal
 | 
						|
-w  --VMS-versions
 | 
						|
-ww  --VMS-dot-versions
 | 
						|
.end literal;.br
 | 
						|
By default, for compatibility with non-VMS systems, Zip strips VMS file
 | 
						|
version numbers from the names stored in an archive.  The -w
 | 
						|
(--VMS-versions) option causes Zip to retain file version numbers on
 | 
						|
names in an archive. Without -w, a version number wildcard (";*") can
 | 
						|
cause errors when multiple versions of a single file are treated as
 | 
						|
multiple files with the same name.
 | 
						|
.sk
 | 
						|
For better compatibility with non-VMS systems where semi-colons are less
 | 
						|
popular in file names, the -ww (--VMS-dot-versions) option stores the
 | 
						|
file version numbers with a dot (".nnn") instead of a semi-colon
 | 
						|
(";nnn").
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Copyright_and_License
 | 
						|
.br
 | 
						|
Zip has an option to display its copyright and license.
 | 
						|
.sk;.literal
 | 
						|
-L  --license
 | 
						|
.end literal;.br
 | 
						|
The license is reproduced below.
 | 
						|
.sk.lm +3
 | 
						|
This is version 2007-Mar-4 of the Info-ZIP license. The definitive
 | 
						|
version of this document should be available at
 | 
						|
ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely and a copy
 | 
						|
at http://www.info-zip.org/pub/infozip/license.html.
 | 
						|
.lm -3;.sk
 | 
						|
--------------------------------------------------------
 | 
						|
.sk
 | 
						|
Copyright (c) 1990-2007 Info-ZIP.  All rights reserved.
 | 
						|
.sk
 | 
						|
For the purposes of this copyright and license, "Info-ZIP" is defined as
 | 
						|
the following set of individuals:
 | 
						|
.sk;.lm +3
 | 
						|
     Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois,
 | 
						|
     Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth,
 | 
						|
     Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz,
 | 
						|
     David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko,
 | 
						|
     Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs,
 | 
						|
     Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda,
 | 
						|
     Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren,
 | 
						|
     Rich Wales, Mike White.
 | 
						|
.lm -3;.sk
 | 
						|
This software is provided "as is," without warranty of any kind, express
 | 
						|
or implied.  In no event shall Info-ZIP or its contributors be held
 | 
						|
liable for any direct, indirect, incidental, special or consequential
 | 
						|
damages arising out of the use of or inability to use this software.
 | 
						|
.sk
 | 
						|
Permission is granted to anyone to use this software for any purpose,
 | 
						|
including commercial applications, and to alter it and redistribute it
 | 
						|
freely, subject to the above disclaimer and the following restrictions:
 | 
						|
.sk;.lm +7;.indent -4
 | 
						|
    1. Redistributions of source code (in whole or in part) must retain
 | 
						|
       the above copyright notice, definition, disclaimer, and this list
 | 
						|
       of conditions.
 | 
						|
.sk;.indent -4
 | 
						|
    2. Redistributions in binary form (compiled executables and libraries)
 | 
						|
       must reproduce the above copyright notice, definition, disclaimer,
 | 
						|
       and this list of conditions in documentation and/or other materials
 | 
						|
       provided with the distribution.  The sole exception to this condition
 | 
						|
       is redistribution of a standard UnZipSFX binary (including SFXWiz) as
 | 
						|
       part of a self-extracting archive; that is permitted without inclusion
 | 
						|
       of this license, as long as the normal SFX banner has not been removed
 | 
						|
       from the binary or disabled.
 | 
						|
.sk;.indent -4
 | 
						|
    3. Altered versions -- including, but not limited to, ports to new operating
 | 
						|
       systems, existing ports with new graphical interfaces, versions with
 | 
						|
       modified or added functionality, and dynamic, shared, or static library
 | 
						|
       versions not from Info-ZIP -- must be plainly marked as such and must not
 | 
						|
       be misrepresented as being the original source or, if binaries,
 | 
						|
       compiled from the original source.  Such altered versions also must not
 | 
						|
       be misrepresented as being Info-ZIP releases -- including, but not
 | 
						|
       limited to, labeling of the altered versions with the names "Info-ZIP"
 | 
						|
       (or any variation thereof, including, but not limited to, different
 | 
						|
       capitalizations), "Pocket UnZip," "WiZ" or "MacZip" without the
 | 
						|
       explicit permission of Info-ZIP.  Such altered versions are further
 | 
						|
       prohibited from misrepresentative use of the Zip-Bugs or Info-ZIP
 | 
						|
       e-mail addresses or the Info-ZIP URL(s), such as to imply Info-ZIP
 | 
						|
       will provide support for the altered versions.
 | 
						|
.sk;.indent -4
 | 
						|
       4. Info-ZIP retains the right to use the names "Info-ZIP", "Zip",
 | 
						|
       "UnZip", "UnZipSFX", "WiZ", "Pocket UnZip", "Pocket Zip", and
 | 
						|
       "MacZip" for its own source and binary releases.
 | 
						|
.lm -7;.sk
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Acknowledgements
 | 
						|
.br
 | 
						|
       Thanks to R. P. Byrne for his Shrink.Pas program, which
 | 
						|
       inspired this project, and from which the shrink algorithm
 | 
						|
       was stolen; to Phil Katz for placing in the public domain
 | 
						|
       the zip file format, compression format, and .ZIP filename
 | 
						|
       extension, and for accepting minor changes to the file
 | 
						|
       format; to Steve Burg for clarifications on the deflate
 | 
						|
       format; to Haruhiko Okumura and Leonid Broukhis for providing
 | 
						|
        some useful ideas for the compression algorithm; to
 | 
						|
       Keith Petersen, Rich Wales, Hunter Goatley and Mark Adler
 | 
						|
       for providing a mailing list and ftp site for the Info-ZIP
 | 
						|
       group to use; and most importantly, to the Info-ZIP group
 | 
						|
       itself (listed in the file infozip.who) without whose
 | 
						|
       tireless testing and bug-fixing efforts a portable zip
 | 
						|
       would not have been possible.  Finally we should thank
 | 
						|
       (blame) the first Info-ZIP moderator, David Kirschbaum,
 | 
						|
       for getting us into this mess in the first place.
 | 
						|
.!------------------------------------------------------------------------------
 | 
						|
.indent -4
 | 
						|
2 Bugs
 | 
						|
.br
 | 
						|
All bug reports, patches, or suggestions should go to zip-bugs via the
 | 
						|
web site contact form at http://www.Info-ZIP.org.  Patches should be
 | 
						|
sent as unified or context diffs only (diff -u or diff -c).
 | 
						|
.sk
 | 
						|
Any bug report should include the Zip version, any special compilation
 | 
						|
options (see "zip -v" report), the host system type and operating system
 | 
						|
version, and any other relevant information (compiler version, lunar
 | 
						|
phase, ...).  
 | 
						|
.!------------------------------------------------------------------------------
 |