diff options
Diffstat (limited to 'vms/zip_cli.help')
-rw-r--r-- | vms/zip_cli.help | 1636 |
1 files changed, 1636 insertions, 0 deletions
diff --git a/vms/zip_cli.help b/vms/zip_cli.help new file mode 100644 index 0000000..1bb39c2 --- /dev/null +++ b/vms/zip_cli.help @@ -0,0 +1,1636 @@ +.! +.! File: ZIP_CLI.HELP +.! +.! Author: Christian Spieler +.! +.! Date: 05 Dec 95 (orig. ZIP.RNH, 22 Oct 91) +.! +.! Description: +.! +.! TPU-processable source file to produce VMS on-line help for +.! portable Zip. Adapted from ZIP.RNH, originally based on +.! ZIP.MAN (now MANUAL). +.! +.! To build: +.! $ EDIT /TPU/NOSECTION/NODISPLAY/COMMAND=CVTHELP.TPU ZIP_CLI.HELP +.! $ RUNOFF /OUT=ZIP_CLI.HLP ZIP_CLI.RNH +.! $ LIBR /HELP/INSERT libr ZIP_CLI +.! +.! Modification history: +.! +.! 01-001 Christian Spieler 05-DEC-1995 02:02 +.! Genesis. +.! 01-002 Christian Spieler 20-JAN-1996 03:09 +.! Modified /LICENSE and /VERBOSE descriptions. +.! 01-003 Christian Spieler 11-FEB-1996 23:09 +.! Added /[NO]EXTRA_FIELDS description. +.! 01-004 Christian Spieler 11-MAR-1996 20:08 +.! Removed /ENCRYPT=VERIFY option. +.! 01-005 Christian Spieler 11-MAY-1996 23:08 +.! Corrected/enhanced info about how to get help on UNIX options. +.! 01-006 Christian Spieler 21-JUL-1997 22:26 +.! Updated for new options of Zip 2.2. +.! 01-006 Christian Spieler 14-OCT-1997 22:04 +.! Cleanups for Zip 2.2 release (no version change). +.! 01-007 Steven Schweda 15-MAY-2007 +.! Zip 3.0. +.! 01-007 Ed Gordon 15-MAY-2007 +.! Minor updates to Zip 3.0 help. +.! +<INIT> +<MAIN> +ZIP + +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. + +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. + +For brief help on Zip or UnZip, run the program without specifying any +parameters on the command line. + +This description covers the Zip program which uses a VMS-style CLI +command line. The VMS CLI Zip program also accepts UNIX-style "-opt" +options, but a separate Zip program is available which provides only a +UNIX-style command line, and it has its own documentation. Refer to +the Zip installation instructions for details. + +<FORMAT> +ZIP [/options] archive inpath, inpath ... + +.! + +<TOPIC> +Basic_Usage + +<FORMAT> +ZIP [/options] archive inpath, inpath ... + +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. If /BATCH is specified, Zip +will read file specifications from a list file or from SYS$INPUT +(stdin). + +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 arguments (file names) must be quoted. 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. + +General + +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. + +Compression + +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. + +Compatibility + +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. + +Large Archives and Zip64 + +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). + +Zip automatically uses the Zip64 extensions when a file 4 GB or larger +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. + +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). + +<TOPIC> +More_Usage + +Here is a very simple example of Zip use: + +<LITERAL> +| zip stuff.zip *.* +<LARETIL> + +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. + +Standard VMS wildcard expansion ($SEARCH) is used to interpret the +"inpath" file and directory specifications, like the "*.*" in this +example. + +On VMS, the most natural way to archive an entire directory tree is to +use a directory-depth wildcard ("[...]"). For example: + +<LITERAL> +| zip foo [...]*.* +<LARETIL> + +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 /RECURSE option: + +<LITERAL> +| zip /recurse foo *.* +<LARETIL> + +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. + +One or more specific files, directories, or subdirectories may also be +specified: + +<LITERAL> +| zip foo.zip readme.txt, [www...]*.*, [.ftp...]*.*, - +| [.src]*.h, [.src]*.c +<LARETIL> + +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. + +To use /RECURSE with a specific directory, the name of the directory +file itself must be specified: + +<LITERAL> +| zip /recurse foo.zip [000000]www.dir, ftp.dir +<LARETIL> + +You may want to make an archive that contains the files in [.foo], but +not record the directory name, "foo". You can use the /JUNK (junk path) +option to leave off the path: + +<LITERAL> +| zip /junk foo [.foo]*.* +<LARETIL> + +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: + +<LITERAL> +| zip /move foo [.foo.tom...]*.* +| zip /move foo [.foo.dick...]*.* +| zip /move foo [.foo.harry...]*.* +<LARETIL> + +The first command would create foo.zip, and the next two would add to +it. The /MOVE option 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 /MOVE is used, the /TEST option is +recommended and will test the resulting archive before deleting the +input files. + +If a file specification list is too long to fit conveniently on the Zip +command line, the /BATCH option can be used to cause Zip to read a list +of file specifications from a file or from SYS$INPUT (stdin). If a DCL +command procedure is used, the names can be specified in the procedure: + +<LITERAL> +| $ zip foo /batch +| $ deck +| file_spec_1 +| file_spec_2 +| file_spec_3 +| $ eod +<LARETIL> + +The file specifications can also be put into a separate file, and fed +into Zip by specifying that file as "/BATCH = list_file", or by +explicitly defining SYS$INPUT, or by using PIPE. For example, with the +list in foo.zfl: +<LITERAL> +| zip foo /batch = foo.zfl +<LARETIL> +or: +<LITERAL> +| define /user_mode sys$input foo.zfl +| zip foo /batch +<LARETIL> +or: +<LITERAL> +| pipe type foo.zfl | zip foo /batch +<LARETIL> + +If Zip is not able to read a file, it issues a warning but continues. +See the /MUST_MATCH 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. +<TOPIC> +Environment + +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. + +UNIX-style command-line options are required in these variables, even +for the VMS CLI Zip program. For details, see the help topic +UNIX_Options, or the separate Zip help for the UNIX-style command line. + +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. + +The "zip /VERBOSE" report should show the perceived settings of these +variables. + +For example, the following will cause Zip to skip directories, include +VMS portable attribute information, and perform all operations at +quiet-level 1 by default: + +<LITERAL> +| $ define ZIP_OPTS "-qDV" +<LARETIL> + +Note that the quotation marks here are required to preserve lowercase +options (opposite of the command-line behavior). + +<TOPIC> +Exit_Status + +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: + +<LITERAL> +| %x17A38001 normal exit +| %x17A38000+ 16* Zip_error_code warnings +| %x17A38002+ 16* Zip_error_code normal errors +| %x17A38004+ 16* Zip_error_code fatal errors +<LARETIL> + +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. + +The Zip VMS exit codes include severity values which approximate those +defined by PKWARE, as shown in the following table: + +<LITERAL0> +| VMS Zip err +|severity code Error description +|---------+---------+---------------------------------------------- +|Success 0 (OK) Normal; no errors or warnings detected. +|Fatal 2 (EOF) Unexpected end of archive. +|Error 3 (FORM) 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 (MEM) Zip was unable to allocate memory for +| one or more buffers during program initializ- +| ation. +|Fatal 5 (LOGIC) A severe error in the archive format +| was detected. Processing probably failed +| immediately. +|Error 6 (BIG) Entry too large to split, read, or +| write. +|Error 7 (NOTE) Invalid comment format. +|Fatal 8 (TEST) Zip -T failed or out of memory. +|Error 9 (ABORT) The user aborted zip prematurely +| with control-C (or equivalent). +|Fatal 10 (TEMP) Zip encountered an error while using +| a tempfile. +|Fatal 11 (READ) Read or seek error. +|Warning 12 (NONE) Zip has nothing to do. +|Error 13 (NAME) Missing or empty zip file. +|Fatal 14 (WRITE) Error writing to a file. +|Fatal 15 (CREAT) Zip was unable to create a file to +| write to. +|Error 16 (PARMS) Bad command line parameters. +|Error 18 (OPEN) Zip could not open a specified file +| to read. +|Fatal 19 (COMPERR) Zip was built with options not +| supported on this system. +|Fatal 20 (ZIP64) Attempt to read unsupported Zip64 +| archive. +<0LARETIL> + +<TOPIC> +File_Names + +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: + +<LITERAL> +[.zip30.vms]descrip.mms +<LARETIL> + +could appear in a Zip archive as: + +<LITERAL> +zip30/vms/descrip.mms +<LARETIL> + +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: + +<LITERAL> +[zip30.vms]descrip.mms +<LARETIL> + +Also, device names are dropped, so the following file specification +would also give the same archive path: + +<LITERAL> +sys$sysdevice:[zip30.vms]descrip.mms +<LARETIL> + +If an archive is intended for use with PKUNZIP under MSDOS, then the +/PKZIP 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). + +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: + +<LITERAL> +$ back [.zip30...]*.* /excl = [...vms]*.c stuff.bck /save +<LARETIL> + +a corresponding Zip command might look like this: + +<LITERAL> +$ zip /exclude = "*/vms/*.c" stuff.zip [.zip30...]*.* +<LARETIL> + +because the files to be added to the Zip archive are specified using VMS +file specifications, but the /EXCLUDE option excludes names based +on their archive path/file names. Options dealing with archive names +include /COPY_ENTRIES, /DELETE, /EXCLUDE, /INCLUDE, and +/RECURSE=FILENAMES. + +Note that a UNIX-like path specification must be quoted, or else the +slashes ("/") will confuse the command-line interpreter, causing errors +like "%CLI-W-IVQUAL, unrecognized qualifier - check validity, spelling, +and placement". + +Note: By default, on VMS, archive name pattern matching (/COPY_ENTRIES, +/DELETE, /EXCLUDE, /INCLUDE, and /RECURSE=FILENAMES) 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 /PATTERN_CASE=BLIND option. +<TOPIC> +Modes_of_Operation + +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. + +<LITERAL> + /UPDATE +<LARETIL> + +Update existing entries and add new files. If the archive does not +exist, create it. This is the default mode, so /UPDATE is optional. + +<LITERAL> + /GROW +<LARETIL> + +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. + +<LITERAL> + /FRESHEN +<LARETIL> + +Update existing entries in an existing archive. Does not add new files +to the archive. + +<LITERAL> + /DELETE +<LARETIL> + +Delete entries from an existing archive. + +<LITERAL> + /COPY_ENTRIES +<LARETIL> + +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 /OUTPUT option to write the resulting archive to a new +file rather than updating the existing archive, leaving the original +archive unchanged. + +<LITERAL> + /DIFFERENCE +<LARETIL> + +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. + +For example, if the existing archive was created using + +<LITERAL> +zip foo_full.zip [.foo...]*.* +<LARETIL> + +from just above the foo directory, then the command (also from just +above the foo directory): + +<LITERAL> +zip /difference /output = foo_incr.zip foo_full.zip [.foo...]*.* +<LARETIL> + +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 /DIFFERENCE" operation, the +original full archive is specified as the input archive, and the /OUTPUT +option is used to specify the new (incremental) output archive. + +<LITERAL> + /FILESYNC +<LARETIL> + +Delete entries in the archive that do not match files on the OS. +Normally files already in an archive that are not updated remain +in the archive unchanged. The /FILESYNC option deletes files in +the archive that are not matched during the directory scan, +resulting in the archive being updated having the same contents +as a new archive would. If much of the archive will remain +unchanged, this can be faster than creating a new archive as +copying entries is faster than compressing and adding new files. + +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. + +<TOPIC> +Self_Extracting_Archives + +A self-extracting archive (SFX) comprises a normal Zip archive appended +to a special UnZip program (such as UNZIPSFX_CLI.EXE) for the intended +target system. + +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. + +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 /ADJUST_OFFSETS can be used to adjust +these offsets in a self-extracting archive. For example, to adjust the +offsets in foo.sfx_exe: + +<LITERAL> +| zip /adjust_offsets foo.sfx_exe +<LARETIL> + +Similarly, the UnZip SFX program can be removed from a self-extracting +archive (and the offsets in the archive restored) using the /UNSFX +option. For example: + +<LITERAL> +| zip /unsfx foo.sfx_exe +<LARETIL> + +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. + +<TOPIC> +Split_Archives + +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 /FIX = FULL option is used to fix the offsets.) + +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. + +<QUALIFIERS> +<QUALIFIER> +/ADJUST_OFFSETS + +/ADJUST_OFFSETS + +Adjust internal offsets of the Zip archive members after some data +(e.g. a SFX executable stub) has been prepended to the archive file. +<QUALIFIER> +/APPEND + +/APPEND +/GROW + +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. + +See also /DELETE /DIFFERENCE, /FRESHEN, /UPDATE. +<QUALIFIER> +/BATCH + +/BATCH[=list_file] + +Read input file specifications (inpaths) from "list_file" (one per +line). The list_file defaults to SYS$INPUT. +<QUALIFIER> +/BEFORE + +/BEFORE=VMS_date_time + +Restricts the files by date-time when adding, updating, or freshening an +archive. Only files with modification date-times earlier than the +specified date-time are accepted. + +See also /SINCE. +<QUALIFIER> +/COMMENTS + +/COMMENTS[=KEYWORD[,KEYWORD]] + +Add comments to the Zip archive. + +<LITERAL> +| ARCHIVE Add/replace the multi-line archive comment. (default) +| FILES Add file comment to each updated/added archive member. +<LARETIL> + +The Zip program prompts for each comment to be added, which makes sense +only if Zip is run interactively. + +The one-line file (archive member) comments are terminated by typing +<Return>. To skip a file comment, just type <Return> without entering +any further characters. + +The Zip archive comment may be multi-line. The comment is ended by a +line containing just a period, or by an end-of-file character (CTRL/Z). +<QUALIFIER> +/COMPRESSION + +/COMPRESSION = {BZIP2|DEFLATE|STORE} + +Specify the compression method to be used when adding or updating files +in an archive. STORE disables compression (like /LEVEL = 0). Default: +/COMPRESSION = DEFLATE. + +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 highly redundant 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.) +<QUALIFIER> +/COPY_ENTRIES + +/COPY_ENTRIES + +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 /OUTPUT option to write the resulting archive to a new +file rather than updating the existing archive, leaving the original +archive unchanged. +<QUALIFIER> +/DELETE + +/DELETE + +Delete entries from archive. + +See also /DIFFERENCE, /FRESHEN, /GROW, /UPDATE. +<QUALIFIER> +/DIFFERENCE + +/DIFFERENCE + +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. + +See also /DELETE, /FRESHEN, /GROW, /UPDATE. +<QUALIFIER> +/DIRNAMES + +/DIRNAMES (default) +/NODIRNAMES + +Store directory entries in the archive. +<QUALIFIER> +/DISPLAY + +/DISPLAY=(KEYWORD[,KEYWORD[...]]) + +Enable display of progress messages. +<LITERAL> +| BYTES Running count of bytes processed and bytes to go. +| COUNTS Running count of entries done and entries to go. +| DOTS = size Dots every <size> MB while processing files. +| (0: no dots.) +| GLOBALDOTS Progress dots reflect the whole archive instead of each +| file. +| USIZE Uncompressed size of each entry. +| VOLUME Display the volume (disk) number each entry is being +| written to. +<LARETIL> + +The default is a dot every 10 MB of input file processed. The /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 /DISPLAY=DOTS=size. +<QUALIFIER> +/DOT_VERSION + +/DOT_VERSION + +Directs Zip to retain VMS file version numbers on names in an archive, +but as ".nnn" instead of ";nnn". By default, for compatibility +with non-VMS systems, Zip strips VMS file version numbers from the names +stored in an archive. Thus, without /DOT_VERSION or /KEEP_VERSION, a +version number wildcard (";*") can cause errors when multiple versions +of a single file are treated as multiple files with the same name. + +See also /KEEP_VERSION. +<QUALIFIER> +/ENCRYPT + +/ENCRYPT[="password"] + +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. + +You may specify the password on the command line, although we do not +recommend it because THIS IS INSECURE. Remember to enclose the password +string with quotation marks ("pass word"), to prevent automatic +conversion to upper case or misinterpretation of punctuation characters +by DCL. + +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. +<QUALIFIER> +/EXCLUDE + +/EXCLUDE=(file[,...]) + +A comma-separated list of files to exclude when deleting, updating, or +adding files in the archive. If multiple files are specified, the list +should be enclosed in parentheses. +<QUALIFIER> +/EXLIST + +/EXLIST=list_file + +The files matching the filename patterns listed in "list_file" are +excluded when deleting, updating or adding files in the archive. +The "list_file" is a normal text file with one filename pattern entry per +line. The name pattern entries are recognized exactly as found in +"list_file", including leading, embedded, and trailing whitespace or most +control characters (with exception of LineFeed and probably CarriageReturn). +<QUALIFIER> +/EXTRA_FIELDS + +/EXTRA_FIELDS (default) +/NOEXTRA_FIELDS + +Allows (or suppresses) the saving of any optional extra fields in the +archive. (/NOEXTRA_FIELDS conflicts with /VMS[=ALL].) + +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 /VMS[=ALL], 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. + +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. +<QUALIFIER> +/FILESYNC + +/FILESYNC + +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 /FILESYNC 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. + +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 /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. +<QUALIFIER> +/FIX_ARCHIVE + +/FIX=_ARCHIVE={NORMAL|FULL} + +The /FIX_ARCHIVE=NORMAL option (NORMAL is the default) 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. + +If the archive is too damaged or the end (where the central directory is +situated) has been truncated, you must use /FIX_ARCHIVE=FULL. This is +a change from zip 2.32, where the /FIX=NORMAL option was able to read a +truncated archive. The /FIX=NORMAL option now more reliably fixes +archives with minor damage, and the /FIX=FULL option is needed to fix +some archives where /FIX=NORMAL was sufficient before. + +With /FIX=FULL, the archive is scanned from the beginning and Zip scans +for special signatures to identify the limits between the archive +members. The /FIX=NORMAL option is more reliable if the archive is not +too much damaged, so try this option first. + +Neither option will recover archives that have been incorrectly +transferred, such as by FTP in ASCII mode instead of binary. After the +repair, the /TEST (-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 /DELETE option of Zip. + +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: + +<LITERAL> +zip /fix_archive /output=foo_fix foo +<LARETIL> + +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 /FIX_ARCHIVE=FULL: + +<LITERAL> +zip /fix_archive=full /output=foo_fixfix foo +<LARETIL> + +and compare the resulting archive to the archive created using +/FIX=NORMAL. The /FIX=FULL option may create an inconsistent archive. +Depending on what is damaged, you can then use the /FIX=NORMAL option to +fix that archive. + +A split archive with missing split files can be fixed using /FIX=NORMAL +if you have the last split of the archive (the ".zip" file). If this +file is missing, you must use /FIX=FULL to fix the archive, which will +prompt you for the splits you have. + +Currently, the fix options can't recover an entry which has a bad +checksum or is otherwise damaged. +<QUALIFIER> +/FRESHEN + +/FRESHEN + +Update existing entries in an existing archive. Does not add new files +to the archive. + +See also /DELETE, /DIFFERENCE, /GROW, /UPDATE. +<QUALIFIER> +/FULL_PATH + +/FULL_PATH (default) +/NOFULL_PATH + +Directs Zip to store the directory part of the file names (relative to +the current working directory) in the Zip archive. With /NOFULL_PATH, +Zip stores only the file names, discarding any directory information. +<QUALIFIER> +/GROW + +/GROW +/APPEND + +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. + +See also /DELETE, /DIFFERENCE, /FRESHEN, /UPDATE. +<QUALIFIER> +/HELP + +/HELP[=EXTENDED] + +Display Zip's help screen, including the version message. With +/HELP=EXTENDED, more detailed (longer) help information is shown. +<QUALIFIER> +/INCLUDE + +/INCLUDE=(file[,...]) + +A comma-separated list of files to include when deleting, updating, or +adding files in the archive. If multiple files are specified, the list +should be enclosed in parentheses. +<QUALIFIER> +/INLIST + +/INLIST=list_file + +The files matching the filename patterns listed in "list_file" are +included when deleting, updating, or adding files in the archive. +The "list_file" is a normal text file with one filename pattern entry per +line. The name pattern entries are recognized exactly as found in +"list_file", including leading, embedded, and trailing whitespace or most +control characters (with exception of LineFeed and probably CarriageReturn). +<QUALIFIER> +/JUNK + +/JUNK +/NOJUNK (default) + +Junk (discard) the directory part of the file names for added entries +(do not not save the directory structure). The /JUNK qualifier is an +alias for /NOFULL_PATH. +<QUALIFIER> +/KEEP_VERSION + +/KEEP_VERSION +/NOKEEP_VERSION (default) + +Directs Zip to retain VMS file version numbers on names in an archive. +By default, for compatibility with non-VMS systems, Zip strips VMS +file version numbers from the names stored in an archive. Thus, without +/DOT_VERSION or /KEEP_VERSION, a version number wildcard (";*") can +cause errors when multiple versions of a single file are treated as +multiple files with the same name. + +See also /DOT_VERSION. +<QUALIFIER> +/LATEST + +/LATEST + +The archive's creation and modification time is set to the latest +modification time of all archive members. +<QUALIFIER> +/LEVEL + +/LEVEL=number + +Specifies the compression level: +<LITERAL> +| 0 Store +| 1 Fastest compression (Defl:F) +| ... +| 9 Best compression (Defl:X) +<LARETIL> + +The default level is 6. +<QUALIFIER> +/LICENSE + +/LICENSE + +Displays the Zip license. +<QUALIFIER> +/LOG_FILE + +/LOG_FILE=(FILE=log_file [, APPEND] [, INFORMATIONAL]) + +Zip normally sends messages to the user's terminal, but these may be +also directed to a log file. + +<LITERAL> + FILE=log_file +<LARETIL> + +Open a logfile at the given path. By default, a new version will be +created. + +<LITERAL> + APPEND +<LARETIL> + +Append to an existing log file. Default is to create a new version. + +<LITERAL> + INFORMATIONAL +<LARETIL> + +Only warnings and errors are written to the log unless the INFORMATIONAL +option is also specified, then all information messages are also written +to the log. +<QUALIFIER> +/MOVE + +/MOVE + +Move the specified files into the Zip archive. That is, Zip will delete +any files which are successfully added to or updated in the archive. 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. It's recommended +that /TEST also be used to test the archive before the input files are +deleted. +<QUALIFIER> +/MUST_MATCH + +/MUST_MATCH + +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 /MUST_MATCH, 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. + +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 /MUST_MATCH +and just check the exit status. Also, a log file (see /LOG_FILE) could +be useful. +<QUALIFIER> +/PATTERN_CASE + +/PATTERN_CASE={BLIND|SENSITIVE} + +<LITERAL> +| BLIND Use case-blind pattern matching for archive entry names. +| SENSITIVE Use case-sensitive pattern matching for archive entry +| names. (Default.) +<LARETIL> + +By default, on VMS, archive name pattern matching (/COPY_ENTRIES, +/DELETE, /EXCLUDE, /INCLUDE, and /RECURSE=FILENAMES) 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 /PATTERN_CASE=BLIND option. +<QUALIFIER> +/PKZIP + +/PKZIP +/NOPKZIP (default) + +Create PKZIP-compatible archive entries. File names and paths are +adjusted 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). +<QUALIFIER> +/PRESERVE_CASE + +/NOPRESERVE_CASE +/PRESERVE_CASE[=(keyword[, ...])] + +Directs Zip to preserve the case of, or convert to lower-case, file names +in the archive. Optional keywords are: +<LITERAL> +| NOODS2 Down-case ODS2 file names (default). +| NOODS5 Down-case ODS5 file names. +| ODS2 Preserve case of ODS2 file names. +| ODS5 Preserve case of ODS5 file names (default). +<LARETIL> + +By default, file names from an ODS2 file system are converted to lower +case for storage in an archive, while the case of file names from an +ODS5 file system is preserved. + +/NOPRESERVE_CASE is equivalent to /PRESERVE_CASE = (NOODS2, NOODS5), +which causes all file names to be converted to lower-case. This is +equivalent to the behavior of Zip before version 3.0. + +/PRESERVE_CASE is equivalent to /PRESERVE_CASE = (ODS2, ODS5), which +preserves the case of all file names. +<QUALIFIER> +/QUIET + +/QUIET + +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 /quiet foo +*.c"). +<QUALIFIER> +/RECURSE + +/RECURSE[=KEYWORD] +/NORECURSE (default) + +Directs Zip to recurse into subdirectories. +The optional keywords recognized are: +<LITERAL> +| PATH take patterns as full path specifiers (-r) (default) +| FILENAMES start from current dir; +| only use filename part of file patterns (-R) +<LARETIL> +The optional FILENAMES keyword modifies the recursion algorithm to be +(almost) compatible to PKZIP's behaviour on subdirectory recursion. + +On VMS, directory recursion can also be requested by using the +directory depth wildcard ("[...]") in an input file specification. +<QUALIFIER> +/SHOW + +/SHOW=(KEYWORD[,KEYWORD[...]]) + +Controls various diagnostic messages. + +The keywords recognized are: +<LITERAL> +| COMMAND Show command line arguments as processed (only, then exit). +| DEBUG Show Debug information. +| FILES Show files to process (only, then exit). +| OPTIONS Show all available command-line options on this system. +<LARETIL> +<QUALIFIER> +/SINCE + +/SINCE=VMS_date_time + +Restricts the files by date-time when adding, updating, or freshening an +archive. Only files with modification date-times at or later than the +specified date-time are accepted. + +See also /BEFORE. +<QUALIFIER> +/SPLIT + +/SPLIT = (SIZE=size [, PAUSE [, BELL]] [, VERBOSE]) + +Enables split archives, specifies the size of the splits, and controls +other related behavior. + +SIZE=size specifies 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: + +<LITERAL> +| zip /split = size = 670m foo [.bar...]*.* +<LARETIL> + +Using /SPLIT without PAUSE 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 PAUSE below for +enabling split pause mode which allows splits to be written directly to +removable media. + +PAUSE causes Zip to pause between splits to allow +changing removable media, for example. PAUSE uses stream mode to +write splits so unzips that can't read stream mode entries may not +be able to read some entries in the archive. Unless standard encryption +was used, copy mode using /COPY_ENTRIES can convert stream mode entries +to normal entries. + +BELL ring the terminal bell when Zip pauses for the next split +destination. + +VERBOSE enables verbose splitting and display details of how the +splitting is being done. + +Though Zip does not update split archives, Zip provides the option +/OUTPUT to allow split archives to be updated and saved in a new +archive. For example: + +<LITERAL> +| zip inarchive.zip foo.c bar.c /output = outarchive.zip +<LARETIL> + +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. +<QUALIFIER> +/STORE_TYPES + +/STORE_TYPES=(.ext1,.ext2,... ) + +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 with /STORE_TYPES. The default list of types where +compression is suppressed is /STORE_TYPES=(.Z, .zip, .zoo, .arc, .lzh, + .arj), and the comparison is case-insensitive. + +/LEVEL=9 will override /STORE_TYPES, causing compression to be attempted +for all files. +<QUALIFIER> +/SYMLINKS + +/SYMLINKS + +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. + +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. +<QUALIFIER> +/TEMP_PATH + +/TEMP_PATH=temp_dir + +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). + +/TEMP_PATH=temp_dir specifies an alternate device:[directory], +"temp_dir", 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: + +<LITERAL> +| zip /temp_path = disk$scratch:[tmp] stuff * +<LARETIL> + +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. +<QUALIFIER> +/TEST + +/TEST[=UNZIP=unzip_cmd] + +Test the integrity of a Zip archive (the new one, if /OUTPUT is +specified). If the check fails, the old archive is unchanged and +(with the /MOVE option) no input files are removed. + +Implementation +"zip /TEST" actually runs an "unzip -t" command to do the testing, so +UnZip must be installed properly for this to work. + +With UNZIP=unzip_cmd, Zip uses the UnZip command specified by +"unzip_cmd" (normally a DCL symbol), instead of the default command, +"unzip -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). + +In "unzip_cmd", the string "{}" is replaced by the name of the +(temporary) 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. +<QUALIFIER> +/TRANSLATE_EOL + +/TRANSLATE_EOL[=KEYWORD] + +Selects conversion of the end-of-line markers in text files. This +option should be used on text files only. The optional keywords +recognized are: +<LITERAL> +| LF convert LF -> CRLF (UNIX to DOS) (default) +| CRLF convert CRLF -> LF, strip trailing CTRL-Z's (DOS to UNIX) +<LARETIL> + +The CRLF option may be useful when a DOS text file has been transfered +to a VMS disk in stream (or stream_lf) format. +<QUALIFIER> +/UNSFX + +/UNSFX + +Strip any prepended data from the Zip archive. ZIP /UNSFX is normally +used to convert a self-extracting archive to a normal archive by +removing the UnZip SFX executable from the beginning of the SFX archive. + +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. +<QUALIFIER> +/UPDATE + +/UPDATE + +Update existing archive entries and add new files. If the archive does +not exist, create it. This is the default mode, so /UPDATE is optional. + +See also /DELETE /DIFFERENCE, /GROW, /FRESHEN. +<QUALIFIER> +/VERBOSE + +/VERBOSE[=NORMAL|MORE|DEBUG] [, COMMAND]] + +Verbose mode or print diagnostic version info. + +Normally, when applied to real operations, this option enables the +display of a progress indicator during compression (see /DISPLAY=DOTS +for more on dots) and requests verbose diagnostic info about archive +structure oddities. + +/VERBOSE with no value is equivalent to /VERBOSE=NORMAL. MORE adds more +messages, and DEBUG adds still more messages. + +When /VERBOSE is the only command line argument, a diagnostic report is +displayed, showing: + +<LITERAL> +| o Copyright and other legal notices +| o Program name, version, and release date +| o Pointers to Info-ZIP FTP and Web sites +| o Program build information (compiler type and version, OS version, +| and the compilation date +| o Optional features enabled at compile-time +| o Environment variable definitions (ZIP_OPTS, ZIPOPT) +<LARETIL> + +This information should be included in bug reports. + +/VERBOSE=COMMAND causes Zip to display the UNIX-style command-line +argument vector which is generated from the VMS-style CLI command line +before executing the command. This is of primary interest to program +developers debugging the CLI. +<QUALIFIER> +/VMS + +/VMS[=ALL] + +The /VMS and /VMS=ALL 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. + +With /VMS, 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 /VMS 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.) + +With /VMS=ALL, 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. +<QUALIFIER> +/WILDCARD + +<LITERAL> +/NOWILDCARD +/WILDCARD=NOSPAN +<LARETIL> + +Controls wildcard processing. + +/NOWILDCARD Wildcard processing is disabled. + +/WILDCARD=NOSPAN Wildcards don't span directory boundaries in paths. +<QUALIFIER> +/ZIP64 + +/ZIP64 + +Forces use of Zip64 archive format, even for small files. This is +mainly for testing and should never be used. Zip will automatically +use Zip64 as needed without this option. +<TOPIC> +UNIX_Options + +"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.) + +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: + +<LITERAL> +| -v +| --verbose +| --verb +<LARETIL> + +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.) + +Some options may be negated (or modified) by appending a "-": + +<LITERAL> +| -la- +| --show-files- +<LARETIL> + +Some options take a value, which may immediately follow the option, or +be separated by a space or "=". For example: +<LITERAL> +| -ttmmddyyyy +| -tt mmddyyyy +| -tt=mmddyyyy +<LARETIL> + +<LITERAL0> +| 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 arcv (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/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 sz = 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 update or delete) +| 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 +| J junk-sfx junk (remove) archive preamble (unzipsfx) +| j junk-paths junk (don't store) dir 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 (wildcrds 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 archv) +| 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 subdirs from cur dir, match names only +| r recurse-paths recurse directories from specified path pats +| s split-size size split archive at "size" (K/MB) (0: don't split) +| sb split-bell ring termnl bell at pause for split medium chng +| 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) +| V VMS-portable save VMS file attributes +| VV VMS-specific save VMS file attributes and all allocated blks +| v verbose verbose messages (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 cmprs method "mthd" (bzip2 or deflate) +| z archive-comment ask for archive comment +<0LARETIL> + +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. +<TOPIC> +Copyright_and_License + +Zip has an option to display its copyright and license. + +<LITERAL> +| /LICENSE +<LARETIL> + +The license is reproduced below. + +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. + +-------------------------------------------------------- +<LITERAL0> +|Copyright (c) 1990-2007 Info-ZIP. All rights reserved. +| +|For the purposes of this copyright and license, "Info-ZIP" is defined as +|the following set of individuals: +| +|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. +| +|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. +| +|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: +| +|1. Redistributions of source code (in whole or in part) must retain +| the above copyright notice, definition, disclaimer, and this list +| of conditions. +| +|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. +| +|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. +| +|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. +<0LARETIL> + +=== |