1.! 2.! File: ZIP_CLI.HELP 3.! 4.! Author: Christian Spieler 5.! 6.! Date: 05 Dec 95 (orig. ZIP.RNH, 22 Oct 91) 7.! 8.! Description: 9.! 10.! TPU-processable source file to produce VMS on-line help for 11.! portable Zip. Adapted from ZIP.RNH, originally based on 12.! ZIP.MAN (now MANUAL). 13.! 14.! To build: 15.! $ EDIT /TPU/NOSECTION/NODISPLAY/COMMAND=CVTHELP.TPU ZIP_CLI.HELP 16.! $ RUNOFF /OUT=ZIP_CLI.HLP ZIP_CLI.RNH 17.! $ LIBR /HELP/INSERT libr ZIP_CLI 18.! 19.! Modification history: 20.! 21.! 01-001 Christian Spieler 05-DEC-1995 02:02 22.! Genesis. 23.! 01-002 Christian Spieler 20-JAN-1996 03:09 24.! Modified /LICENSE and /VERBOSE descriptions. 25.! 01-003 Christian Spieler 11-FEB-1996 23:09 26.! Added /[NO]EXTRA_FIELDS description. 27.! 01-004 Christian Spieler 11-MAR-1996 20:08 28.! Removed /ENCRYPT=VERIFY option. 29.! 01-005 Christian Spieler 11-MAY-1996 23:08 30.! Corrected/enhanced info about how to get help on UNIX options. 31.! 01-006 Christian Spieler 21-JUL-1997 22:26 32.! Updated for new options of Zip 2.2. 33.! 01-006 Christian Spieler 14-OCT-1997 22:04 34.! Cleanups for Zip 2.2 release (no version change). 35.! 01-007 Steven Schweda 15-MAY-2007 36.! Zip 3.0. 37.! 01-007 Ed Gordon 15-MAY-2007 38.! Minor updates to Zip 3.0 help. 39.! 40<INIT> 41<MAIN> 42ZIP 43 44Zip is a compression and file packaging utility for several operating 45systems, including UNIX, VMS, MSDOS, OS/2, Windows 9x/NT/XP, Minix, 46Atari, Macintosh, Amiga, and Acorn RISC OS. It is analogous to a 47combination of tar and compress and is compatible with PKZIP (Phil 48Katz's ZIP) for MSDOS systems. 49 50Zip is useful for packaging a set of files for distribution, for 51archiving files, and for saving disk space by temporarily compressing 52unused files or directories. A companion program, UnZip, unpacks Zip 53archives. 54 55For brief help on Zip or UnZip, run the program without specifying any 56parameters on the command line. 57 58This description covers the Zip program which uses a VMS-style CLI 59command line. The VMS CLI Zip program also accepts UNIX-style "-opt" 60options, but a separate Zip program is available which provides only a 61UNIX-style command line, and it has its own documentation. Refer to 62the Zip installation instructions for details. 63 64<FORMAT> 65ZIP [/options] archive inpath, inpath ... 66 67.! 68 69<TOPIC> 70Basic_Usage 71 72<FORMAT> 73ZIP [/options] archive inpath, inpath ... 74 75The default action of Zip is to add or replace entries in "archive" from 76the list of "inpath" file specifications, which can include directories 77and file names with VMS-style wildcards. If /BATCH is specified, Zip 78will read file specifications from a list file or from SYS$INPUT 79(stdin). 80 81With SET PROCESS /PARSE_STYLE = EXTENDED (available on recent non-VAX 82systems), Zip preserves the case of the command line. Otherwise, mixed- 83or upper-case arguments (file names) must be quoted. Examples in this 84document generally do not show this quotation, so VAX and /PARSE_STYLE = 85TRADITIONAL users (that is, troglodytes) will need to add quotation 86where needed when working with these examples. 87 88General 89 90Zip reads one or more files, compresses the data (normally), and stores 91the compressed information into a single Zip archive file, along with 92information about each file (name, path, date and time of last 93modification, protection, and check information to verify file 94integrity). On a VMS system, Zip can also save VMS/RMS file attributes, 95allowing UnZip to restore the files without loss of important file 96attributes. Zip can pack an entire directory structure into a Zip 97archive with a single command. 98 99Compression 100 101Compression ratios of 2:1 to 3:1 are common for text files. Zip has one 102standard compression method ("deflate") and can also store files without 103compression. Zip (and UnZip) may be built with optional support for the 104bzip2 compression method. Then, the user may select bzip2 compression 105instead of the default "deflate" method. Zip automatically chooses 106simple storage over compression for a file, if the specified compression 107method does not actually compress the data in that file. 108 109Compatibility 110 111Zip and UnZip can work with archives produced by PKZIP (supporting most 112PKZIP features up to PKZIP version 4.6), and PKZIP and PKUNZIP can work 113with archives produced by Zip (with some exceptions, notably streamed 114archives, but recent changes in the .ZIP file standard may facilitate 115better compatibility). Zip version 3.0 is compatible with PKZIP 2.04 116and also supports the Zip64 extensions of PKZIP 4.5 which allows 117archives as well as files to exceed the previous 2 GB limit (4 GB in 118some cases). Zip also supports bzip2 compression if the bzip2 library 119is included when Zip is built. Note that PKUNZIP 1.10 cannot extract 120files produced by PKZIP 2.04 or Zip 3.0. You must use PKUNZIP 2.04g or 121UnZip 5.0p1 (or later versions) to extract them. 122 123Large Archives and Zip64 124 125Where the operating system and C run-time support allow, Zip 3.0 and 126UnZip 6.0 (and later versions) support large files (input and archive), 127using the Zip64 extensions to the original .ZIP file format. On VMS, 128this genarally means non-VAX systems with VMS V7.2 or later (perhaps 129requiring a C RTL ECO before VMS V7.3-2). 130 131Zip automatically uses the Zip64 extensions when a file 4 GB or larger 132is added to an archive, an archive containing a Zip64 entry is updated 133(if the resulting archive still needs Zip64), the size of the archive 134will exceed 4 GB, or when the number of entries in the archive will 135exceed about 64K. Zip64 is also used for archives streamed to a 136non-seekable output device. You must use a 4.5 compatible UnZip to 137extract files using the Zip64 extensions such as UnZip 6.0 or later. 138 139In addition, streamed archives, entries encrypted with standard 140encryption, or split archives created with the pause option may not be 141compatible with PKZIP as data descriptors are used, and PKZIP at the 142time of this writing does not support data descriptors (but recent 143changes in the PKWare published .ZIP file standard now include some 144support for the data descriptor format Zip uses). 145 146<TOPIC> 147More_Usage 148 149Here is a very simple example of Zip use: 150 151<LITERAL> 152| zip stuff.zip *.* 153<LARETIL> 154 155This will create the Zip archive "stuff.zip" (assuming it does not 156already exist) and put all the (non-directory) files (";0") from the 157current default directory into "stuff.zip" in a compressed form. The 158archive is opened using a default file specification of 159"SYS$DISK:[].zip", so specifying "stuff" as the archive name would also 160create (or use an existing) "stuff.zip", but specifying "stuff.other" 161would give you that name. In general, Zip doesn't care about the type 162in the file specification, but for split archives (archives split over 163multiple files), the user should normally specify a type-less name, 164because Zip will normally generate sequentially numbered types ".z01", 165".z02", and so on for the early splits, and then the required ".zip" for 166the last split. These file types are required by the Zip standard for 167split archives. 168 169Standard VMS wildcard expansion ($SEARCH) is used to interpret the 170"inpath" file and directory specifications, like the "*.*" in this 171example. 172 173On VMS, the most natural way to archive an entire directory tree is to 174use a directory-depth wildcard ("[...]"). For example: 175 176<LITERAL> 177| zip foo [...]*.* 178<LARETIL> 179 180This will create the file "foo.zip" containing all the files (";0") and 181directories in and below the current default directory. A more 182UNIX-like way to do this would be to use the /RECURSE option: 183 184<LITERAL> 185| zip /recurse foo *.* 186<LARETIL> 187 188Zip avoids including its own output files when selecting files to 189include in the archive, so it should be safe, as in this case, to create 190the archive in the same drectory as the input files. 191 192One or more specific files, directories, or subdirectories may also be 193specified: 194 195<LITERAL> 196| zip foo.zip readme.txt, [www...]*.*, [.ftp...]*.*, - 197| [.src]*.h, [.src]*.c 198<LARETIL> 199 200For security reasons, paths in Zip archives are always stored as 201relative paths, so some care is needed when creating an archive so that 202it will create the intended directory structure when UnZip is used to 203unpack it. 204 205To use /RECURSE with a specific directory, the name of the directory 206file itself must be specified: 207 208<LITERAL> 209| zip /recurse foo.zip [000000]www.dir, ftp.dir 210<LARETIL> 211 212You may want to make an archive that contains the files in [.foo], but 213not record the directory name, "foo". You can use the /JUNK (junk path) 214option to leave off the path: 215 216<LITERAL> 217| zip /junk foo [.foo]*.* 218<LARETIL> 219 220If you are short on disk space, you might not have enough room to hold 221both the original directory and the corresponding compressed Zip 222archive. In this case, you can create the archive in steps, and use the 223-m option. For example, if [.foo] contains the subdirectories [.tom], 224[.dick], and [.harry], you could: 225 226<LITERAL> 227| zip /move foo [.foo.tom...]*.* 228| zip /move foo [.foo.dick...]*.* 229| zip /move foo [.foo.harry...]*.* 230<LARETIL> 231 232The first command would create foo.zip, and the next two would add to 233it. The /MOVE option will cause Zip to delete all files added to the 234archive after making or updating foo.zip. No deletions will be done 235until the Zip operation has completed with no errors. This option is 236obviously dangerous and should be used with care, but it does reduce the 237need for free disk space. When /MOVE is used, the /TEST option is 238recommended and will test the resulting archive before deleting the 239input files. 240 241If a file specification list is too long to fit conveniently on the Zip 242command line, the /BATCH option can be used to cause Zip to read a list 243of file specifications from a file or from SYS$INPUT (stdin). If a DCL 244command procedure is used, the names can be specified in the procedure: 245 246<LITERAL> 247| $ zip foo /batch 248| $ deck 249| file_spec_1 250| file_spec_2 251| file_spec_3 252| $ eod 253<LARETIL> 254 255The file specifications can also be put into a separate file, and fed 256into Zip by specifying that file as "/BATCH = list_file", or by 257explicitly defining SYS$INPUT, or by using PIPE. For example, with the 258list in foo.zfl: 259<LITERAL> 260| zip foo /batch = foo.zfl 261<LARETIL> 262or: 263<LITERAL> 264| define /user_mode sys$input foo.zfl 265| zip foo /batch 266<LARETIL> 267or: 268<LITERAL> 269| pipe type foo.zfl | zip foo /batch 270<LARETIL> 271 272If Zip is not able to read a file, it issues a warning but continues. 273See the /MUST_MATCH option for more on how Zip handles patterns that are 274not matched and files that are not readable. If some files were 275skipped, a warning is issued at the end of the Zip operation noting how 276many files were read and how many skipped. 277<TOPIC> 278Environment 279 280A user can specify default command-line options and arguments by 281defining an "environment variable" (that is, a logical name or DCL 282symbol), "ZIP_OPTS" or "ZIPOPT", to specify them. If both "ZIP_OPTS" 283and "ZIPOPT" are specified, the definition of "ZIPOPT" prevails. 284 285UNIX-style command-line options are required in these variables, even 286for the VMS CLI Zip program. For details, see the help topic 287UNIX_Options, or the separate Zip help for the UNIX-style command line. 288 289The C RTL function getenv() is used to sense these variables, so its 290behavior determines what happens if both a logical name and a symbol are 291defined. As of VMS V7.3, a logical name supercedes a symbol. 292 293The "zip /VERBOSE" report should show the perceived settings of these 294variables. 295 296For example, the following will cause Zip to skip directories, include 297VMS portable attribute information, and perform all operations at 298quiet-level 1 by default: 299 300<LITERAL> 301| $ define ZIP_OPTS "-qDV" 302<LARETIL> 303 304Note that the quotation marks here are required to preserve lowercase 305options (opposite of the command-line behavior). 306 307<TOPIC> 308Exit_Status 309 310On VMS, Zip's UNIX-style exit values are mapped into VMS-style status 311codes with facility code 1955 = %x7A3, and with the inhibit-message 312(%x10000000) and facility-specific (%x00008000) bits set: 313 314<LITERAL> 315| %x17A38001 normal exit 316| %x17A38000+ 16* Zip_error_code warnings 317| %x17A38002+ 16* Zip_error_code normal errors 318| %x17A38004+ 16* Zip_error_code fatal errors 319<LARETIL> 320 321Note that multiplying the UNIX-style Zip error code by 16 places it 322conveniently in the hexadecimal representation of the VMS exit code, 323"__" in %x17A38__s, where "s" is the severity code. For example, a 324truncated archive might cause Zip error code 2, which would be 325transformed into the VMS exit status %x17A38024. 326 327The Zip VMS exit codes include severity values which approximate those 328defined by PKWARE, as shown in the following table: 329 330<LITERAL0> 331| VMS Zip err 332|severity code Error description 333|---------+---------+---------------------------------------------- 334|Success 0 (OK) Normal; no errors or warnings detected. 335|Fatal 2 (EOF) Unexpected end of archive. 336|Error 3 (FORM) A generic error in the archive format 337| was detected. Processing may have completed 338| successfully anyway; some broken archives 339| created by other archivers have simple work- 340| arounds. 341|Fatal 4 (MEM) Zip was unable to allocate memory for 342| one or more buffers during program initializ- 343| ation. 344|Fatal 5 (LOGIC) A severe error in the archive format 345| was detected. Processing probably failed 346| immediately. 347|Error 6 (BIG) Entry too large to split, read, or 348| write. 349|Error 7 (NOTE) Invalid comment format. 350|Fatal 8 (TEST) Zip -T failed or out of memory. 351|Error 9 (ABORT) The user aborted zip prematurely 352| with control-C (or equivalent). 353|Fatal 10 (TEMP) Zip encountered an error while using 354| a tempfile. 355|Fatal 11 (READ) Read or seek error. 356|Warning 12 (NONE) Zip has nothing to do. 357|Error 13 (NAME) Missing or empty zip file. 358|Fatal 14 (WRITE) Error writing to a file. 359|Fatal 15 (CREAT) Zip was unable to create a file to 360| write to. 361|Error 16 (PARMS) Bad command line parameters. 362|Error 18 (OPEN) Zip could not open a specified file 363| to read. 364|Fatal 19 (COMPERR) Zip was built with options not 365| supported on this system. 366|Fatal 20 (ZIP64) Attempt to read unsupported Zip64 367| archive. 368<0LARETIL> 369 370<TOPIC> 371File_Names 372 373Zip deals with file names in the system file system and with file names 374in Zip archives. File names in a Zip archive are stored in a UNIX-like 375path-name format. For example, a VMS file specification like this: 376 377<LITERAL> 378[.zip30.vms]descrip.mms 379<LARETIL> 380 381could appear in a Zip archive as: 382 383<LITERAL> 384zip30/vms/descrip.mms 385<LARETIL> 386 387For security reasons, paths in Zip archives are always stored as 388relative paths, so an absolute VMS directory specification will be 389transformed to a relative path in the archive (that is, no leading "/"). 390For example, the following absolute directory specification would give 391the same archive path as the previous (relative) example: 392 393<LITERAL> 394[zip30.vms]descrip.mms 395<LARETIL> 396 397Also, device names are dropped, so the following file specification 398would also give the same archive path: 399 400<LITERAL> 401sys$sysdevice:[zip30.vms]descrip.mms 402<LARETIL> 403 404If an archive is intended for use with PKUNZIP under MSDOS, then the 405/PKZIP option should be used to attempt to adjust the names and paths to 406conform to MSDOS character-set and length limitations, to store only the 407MSDOS file attributes (just the owner:write attribute from VMS), and to 408mark the entry as made under MSDOS (even though it wasn't). 409 410Note that file specifications in the file system must be specified using 411VMS notation, but file names in an archive must be specified using the 412UNIX-like notation used in the archive. For example, where a BACKUP 413command might look like this: 414 415<LITERAL> 416$ back [.zip30...]*.* /excl = [...vms]*.c stuff.bck /save 417<LARETIL> 418 419a corresponding Zip command might look like this: 420 421<LITERAL> 422$ zip /exclude = "*/vms/*.c" stuff.zip [.zip30...]*.* 423<LARETIL> 424 425because the files to be added to the Zip archive are specified using VMS 426file specifications, but the /EXCLUDE option excludes names based 427on their archive path/file names. Options dealing with archive names 428include /COPY_ENTRIES, /DELETE, /EXCLUDE, /INCLUDE, and 429/RECURSE=FILENAMES. 430 431Note that a UNIX-like path specification must be quoted, or else the 432slashes ("/") will confuse the command-line interpreter, causing errors 433like "%CLI-W-IVQUAL, unrecognized qualifier - check validity, spelling, 434and placement". 435 436Note: By default, on VMS, archive name pattern matching (/COPY_ENTRIES, 437/DELETE, /EXCLUDE, /INCLUDE, and /RECURSE=FILENAMES) is case sensitive, 438even when the file system is not case sensitive (or even case 439preserving). This allows accurate matching of mixed-case names in an 440archive which may have been created on a system with a case sensitive 441file system, but it can involve extra effort on VMS, where it may be 442necessary to use unnatural case names (or the same names in multiple 443cases, like "*.obj *.OBJ") for this kind of pattern matching to give the 444desired behavior. If completely case-blind pattern matching behavior is 445desired, specify the /PATTERN_CASE=BLIND option. 446<TOPIC> 447Modes_of_Operation 448 449Zip supports two distinct types of command modes, external and 450internal. The external modes (update, grow, and freshen) read files 451from the file system (as well as from an existing archive) while the 452internal modes (delete and copy) operate exclusively on entries in an 453existing archive. 454 455<LITERAL> 456 /UPDATE 457<LARETIL> 458 459Update existing entries and add new files. If the archive does not 460exist, create it. This is the default mode, so /UPDATE is optional. 461 462<LITERAL> 463 /GROW 464<LARETIL> 465 466Grow (append to) the specified Zip archive, instead of creating a new 467one. If this operation fails, Zip attempts to restore the archive to 468its original state. If the restoration fails, the archive might become 469corrupted. This option is ignored when there's no existing archive or 470when at least one archive member must be updated or deleted. 471 472<LITERAL> 473 /FRESHEN 474<LARETIL> 475 476Update existing entries in an existing archive. Does not add new files 477to the archive. 478 479<LITERAL> 480 /DELETE 481<LARETIL> 482 483Delete entries from an existing archive. 484 485<LITERAL> 486 /COPY_ENTRIES 487<LARETIL> 488 489Select entries in an existing archive and copy them to a new archive. 490Copy mode is like update mode, but entries in the existing archive are 491selected by command line patterns rather than files from the file system 492and it uses the /OUTPUT option to write the resulting archive to a new 493file rather than updating the existing archive, leaving the original 494archive unchanged. 495 496<LITERAL> 497 /DIFFERENCE 498<LARETIL> 499 500Create an incremental backup-style archive, where the resulting archive 501will contain all new and changed files since the original archive was 502created. For this to work, the input file list and current directory 503must be the same as during the original Zip operation. 504 505For example, if the existing archive was created using 506 507<LITERAL> 508zip foo_full.zip [.foo...]*.* 509<LARETIL> 510 511from just above the foo directory, then the command (also from just 512above the foo directory): 513 514<LITERAL> 515zip /difference /output = foo_incr.zip foo_full.zip [.foo...]*.* 516<LARETIL> 517 518creates the archive foo_incr.zip with just the files not in foo_full.zip 519and the files where the size or date-time of the files does not match 520that in foo_full.zip. Note that in the "ZIP /DIFFERENCE" operation, the 521original full archive is specified as the input archive, and the /OUTPUT 522option is used to specify the new (incremental) output archive. 523 524<LITERAL> 525 /FILESYNC 526<LARETIL> 527 528Delete entries in the archive that do not match files on the OS. 529Normally files already in an archive that are not updated remain 530in the archive unchanged. The /FILESYNC option deletes files in 531the archive that are not matched during the directory scan, 532resulting in the archive being updated having the same contents 533as a new archive would. If much of the archive will remain 534unchanged, this can be faster than creating a new archive as 535copying entries is faster than compressing and adding new files. 536 537Normally, when updating an archive using relative file specifications 538("[]", "[.xxx]", and so on), it helps to have the same default directory 539as when the archive was created, but this is not a strict requirement. 540 541<TOPIC> 542Self_Extracting_Archives 543 544A self-extracting archive (SFX) comprises a normal Zip archive appended 545to a special UnZip program (such as UNZIPSFX_CLI.EXE) for the intended 546target system. 547 548The UnZip distribution includes a VMS command procedure, 549[,vms]makesfx.com, which can be used directly or adapted to create an 550SFX archive from a normal Zip archive. 551 552The .ZIP file format includes offsets to data structures in the archive, 553and these offsets are measured from the start of the archive file. 554Appending an archive to an UnZip SFX executable effectively moves the 555start of the archive file. That makes the original offsets wrong, and 556that will cause the UnZip SFX program to emit warning messages when it 557tries to unpack the archive. Zip /ADJUST_OFFSETS can be used to adjust 558these offsets in a self-extracting archive. For example, to adjust the 559offsets in foo.sfx_exe: 560 561<LITERAL> 562| zip /adjust_offsets foo.sfx_exe 563<LARETIL> 564 565Similarly, the UnZip SFX program can be removed from a self-extracting 566archive (and the offsets in the archive restored) using the /UNSFX 567option. For example: 568 569<LITERAL> 570| zip /unsfx foo.sfx_exe 571<LARETIL> 572 573Note that a self-extracting archive contains a normal Zip archive, and a 574normal UnZip program can be used to expand it in the normal way. You 575may get a warning about extra bytes at the beginning of the archive (the 576UnZip SFX program), but UnZip should work properly after that. This 577allows data in a self-extracting archive to be accessed on any system, 578not just the target system where its embedded UnZip SFX program runs. 579 580<TOPIC> 581Split_Archives 582 583Beginning with version 3.0, Zip supports split archives. A split 584archive is one which is divided into multiple files, usually to allow it 585to be stored on multiple storage media (floppy diskettes, CD-ROMs, or 586the like) when a single medium would be too small to contain the whole 587archive. (Note that split archives are not just unitary archives split 588into pieces, as the .ZIP file format includes offsets to data structures 589in the archive, and for a split archive these are based on the start of 590each split, not on the start of the whole archive. Concatenating the 591pieces will invalidate these offsets, but UnZip can usually deal with 592it. Zip will usually refuse to process such a spliced archive unless 593the /FIX = FULL option is used to fix the offsets.) 594 595For a split archive with, say, 20 split files, the files are typically 596named ARCHIVE.z01, ARCHIVE.z02, ..., ARCHIVE.z19, ARCHIVE.zip, where 597"ARCHIVE" is the archive name specified by the user on the Zip command 598line. Note that the last split file is the ".zip" file. In contrast, 599"spanned" archives are the original multi-disk archive generally 600requiring floppy disks and using volume labels to store disk numbers. 601Zip supports split archives but not spanned archives, though a procedure 602exists for converting split archives of the right size to spanned 603archives. The reverse is also true, where each file of a spanned 604archive can be copied in order to files with the above names to create a 605split archive. 606 607<QUALIFIERS> 608<QUALIFIER> 609/ADJUST_OFFSETS 610 611/ADJUST_OFFSETS 612 613Adjust internal offsets of the Zip archive members after some data 614(e.g. a SFX executable stub) has been prepended to the archive file. 615<QUALIFIER> 616/APPEND 617 618/APPEND 619/GROW 620 621Grow (append to) the specified Zip archive, instead of creating a new 622one. If this operation fails, Zip attempts to restore the archive to 623its original state. If the restoration fails, the archive might become 624corrupted. This option is ignored when there's no existing archive or 625when at least one archive member must be updated or deleted. 626 627See also /DELETE /DIFFERENCE, /FRESHEN, /UPDATE. 628<QUALIFIER> 629/BATCH 630 631/BATCH[=list_file] 632 633Read input file specifications (inpaths) from "list_file" (one per 634line). The list_file defaults to SYS$INPUT. 635<QUALIFIER> 636/BEFORE 637 638/BEFORE=VMS_date_time 639 640Restricts the files by date-time when adding, updating, or freshening an 641archive. Only files with modification date-times earlier than the 642specified date-time are accepted. 643 644See also /SINCE. 645<QUALIFIER> 646/COMMENTS 647 648/COMMENTS[=KEYWORD[,KEYWORD]] 649 650Add comments to the Zip archive. 651 652<LITERAL> 653| ARCHIVE Add/replace the multi-line archive comment. (default) 654| FILES Add file comment to each updated/added archive member. 655<LARETIL> 656 657The Zip program prompts for each comment to be added, which makes sense 658only if Zip is run interactively. 659 660The one-line file (archive member) comments are terminated by typing 661<Return>. To skip a file comment, just type <Return> without entering 662any further characters. 663 664The Zip archive comment may be multi-line. The comment is ended by a 665line containing just a period, or by an end-of-file character (CTRL/Z). 666<QUALIFIER> 667/COMPRESSION 668 669/COMPRESSION = {BZIP2|DEFLATE|STORE} 670 671Specify the compression method to be used when adding or updating files 672in an archive. STORE disables compression (like /LEVEL = 0). Default: 673/COMPRESSION = DEFLATE. 674 675Zip can archive files with or without compression. The standard 676compression method ("deflate") is compatible with all UnZip versions 677(except really old ones that only understand the "store" method). 678Current Zip and UnZip versions may be built with optional support for 679the bzip2 compression method. (The bzip2 method can compress better, 680especially when compressing highly redundant files, but uses more CPU 681time, and requires an UnZip which includes the optional bzip2 support. 682See the installation instructions for details on adding bzip2 683compression support at build time.) 684<QUALIFIER> 685/COPY_ENTRIES 686 687/COPY_ENTRIES 688 689Select entries in an existing archive and copy them to a new archive. 690Copy mode is like update mode, but entries in the existing archive are 691selected by command line patterns rather than files from the file system 692and it uses the /OUTPUT option to write the resulting archive to a new 693file rather than updating the existing archive, leaving the original 694archive unchanged. 695<QUALIFIER> 696/DELETE 697 698/DELETE 699 700Delete entries from archive. 701 702See also /DIFFERENCE, /FRESHEN, /GROW, /UPDATE. 703<QUALIFIER> 704/DIFFERENCE 705 706/DIFFERENCE 707 708Create an incremental backup-style archive, where the resulting archive 709will contain all new and changed files since the original archive was 710created. For this to work, the input file list and current directory 711must be the same as during the original Zip operation. 712 713See also /DELETE, /FRESHEN, /GROW, /UPDATE. 714<QUALIFIER> 715/DIRNAMES 716 717/DIRNAMES (default) 718/NODIRNAMES 719 720Store directory entries in the archive. 721<QUALIFIER> 722/DISPLAY 723 724/DISPLAY=(KEYWORD[,KEYWORD[...]]) 725 726Enable display of progress messages. 727<LITERAL> 728| BYTES Running count of bytes processed and bytes to go. 729| COUNTS Running count of entries done and entries to go. 730| DOTS = size Dots every <size> MB while processing files. 731| (0: no dots.) 732| GLOBALDOTS Progress dots reflect the whole archive instead of each 733| file. 734| USIZE Uncompressed size of each entry. 735| VOLUME Display the volume (disk) number each entry is being 736| written to. 737<LARETIL> 738 739The default is a dot every 10 MB of input file processed. The /VERBOSE 740option also displays dots and used to at a higher rate than this (at the 741same rate as in previous versions of Zip) but this rate has been changed 742to the new 10 MB default, and is also controlled by /DISPLAY=DOTS=size. 743<QUALIFIER> 744/DOT_VERSION 745 746/DOT_VERSION 747 748Directs Zip to retain VMS file version numbers on names in an archive, 749but as ".nnn" instead of ";nnn". By default, for compatibility 750with non-VMS systems, Zip strips VMS file version numbers from the names 751stored in an archive. Thus, without /DOT_VERSION or /KEEP_VERSION, a 752version number wildcard (";*") can cause errors when multiple versions 753of a single file are treated as multiple files with the same name. 754 755See also /KEEP_VERSION. 756<QUALIFIER> 757/ENCRYPT 758 759/ENCRYPT[="password"] 760 761Encrypt new or updated archive entries using a password which is 762supplied by the user interactively on the terminal in response to a 763prompt. (The password will not be echoed.) If SYS$COMMAND is not a 764terminal, Zip will exit with an error. The password is verified before 765being accepted. 766 767You may specify the password on the command line, although we do not 768recommend it because THIS IS INSECURE. Remember to enclose the password 769string with quotation marks ("pass word"), to prevent automatic 770conversion to upper case or misinterpretation of punctuation characters 771by DCL. 772 773Because standard Zip encryption is weak, where security is truly 774important, use a strong encryption program, such as Pretty Good Privacy 775(PGP) or GNU Privacy Guard (GnuPG), on an archive instead of standard 776Zip encryption. A stronger encryption method, such as AES, is planned 777for Zip 3.1. 778<QUALIFIER> 779/EXCLUDE 780 781/EXCLUDE=(file[,...]) 782 783A comma-separated list of files to exclude when deleting, updating, or 784adding files in the archive. If multiple files are specified, the list 785should be enclosed in parentheses. 786<QUALIFIER> 787/EXLIST 788 789/EXLIST=list_file 790 791The files matching the filename patterns listed in "list_file" are 792excluded when deleting, updating or adding files in the archive. 793The "list_file" is a normal text file with one filename pattern entry per 794line. The name pattern entries are recognized exactly as found in 795"list_file", including leading, embedded, and trailing whitespace or most 796control characters (with exception of LineFeed and probably CarriageReturn). 797<QUALIFIER> 798/EXTRA_FIELDS 799 800/EXTRA_FIELDS (default) 801/NOEXTRA_FIELDS 802 803Allows (or suppresses) the saving of any optional extra fields in the 804archive. (/NOEXTRA_FIELDS conflicts with /VMS[=ALL].) 805 806The .ZIP file format allows some extra data to be stored with a file in 807the archive. For example, where local time zone information is 808available, Zip can store UTC date-time data for files. (Look for 809USE_EF_UT_TIME in a "zip -v" report.) On VMS, with /VMS[=ALL], Zip will 810also store VMS-specific file attributes. These data are packaged as 811"extra fields" in the archive. Some extra fields are specific to a 812particular operating system (like VMS file attributes). Large files 813(bigger than 4GB) on any OS require an extra field to hold their 64-bit 814size data. Depending on the capabilities of the UnZip program used to 815expand the archive, these extra fields may be used or ignored when files 816are extracted from the archive. 817 818Some extra fields, like UTC date-times or VMS file attributes, are 819optional. Others, like the Zip64 extra field which holds 64-bit sizes 820for a large file, are required. 821<QUALIFIER> 822/FILESYNC 823 824/FILESYNC 825 826Delete entries in the archive that do not match files on the OS. 827Normally when an archive is updated, new files are added and changed 828files are updated but files that no longer exist on the OS are not 829deleted from the archive. This option enables deleting of entries that 830are not matched on the OS. Enabling this option should create archives 831that are the same as new archives, but since existing entries are copied 832instead of compressed, updating an existing archive with /FILESYNC can 833be much faster than creating a new archive. If few files are being 834copied from the old archive, it may be faster to create a new archive 835instead. 836 837This option deletes files from the archive. If you need to preserve the 838original archive, make a copy of the archive first, or use the /OUTPUT 839option to output the new archive to a new file. Even though it's 840slower, creating a new archive with a new archive name is safer, avoids 841mismatches between archive and OS paths, and is preferred. 842<QUALIFIER> 843/FIX_ARCHIVE 844 845/FIX=_ARCHIVE={NORMAL|FULL} 846 847The /FIX_ARCHIVE=NORMAL option (NORMAL is the default) can be used if 848some portions of the archive are missing, but it requires a reasonably 849intact central directory. The input archive is scanned as usual, but 850zip will ignore some problems. The resulting archive should be valid, 851but any inconsistent entries will be left out. 852 853If the archive is too damaged or the end (where the central directory is 854situated) has been truncated, you must use /FIX_ARCHIVE=FULL. This is 855a change from zip 2.32, where the /FIX=NORMAL option was able to read a 856truncated archive. The /FIX=NORMAL option now more reliably fixes 857archives with minor damage, and the /FIX=FULL option is needed to fix 858some archives where /FIX=NORMAL was sufficient before. 859 860With /FIX=FULL, the archive is scanned from the beginning and Zip scans 861for special signatures to identify the limits between the archive 862members. The /FIX=NORMAL option is more reliable if the archive is not 863too much damaged, so try this option first. 864 865Neither option will recover archives that have been incorrectly 866transferred, such as by FTP in ASCII mode instead of binary. After the 867repair, the /TEST (-t) option of UnZip may show that some files have a 868bad CRC. Such files cannot be recovered; you can remove them from the 869archive using the /DELETE option of Zip. 870 871Because of the uncertainty of the "fixing" process, it's required 872to specify an output archive, rather than risking further damage to the 873original damaged archive. For example, to fix the damaged archive 874foo.zip: 875 876<LITERAL> 877zip /fix_archive /output=foo_fix foo 878<LARETIL> 879 880tries to read the entries normally, copying good entries to the new 881archive foo_fix.zip. If this doesn't work, as when the archive is 882truncated, or if some entries are missed because of bad central 883directory entries, try /FIX_ARCHIVE=FULL: 884 885<LITERAL> 886zip /fix_archive=full /output=foo_fixfix foo 887<LARETIL> 888 889and compare the resulting archive to the archive created using 890/FIX=NORMAL. The /FIX=FULL option may create an inconsistent archive. 891Depending on what is damaged, you can then use the /FIX=NORMAL option to 892fix that archive. 893 894A split archive with missing split files can be fixed using /FIX=NORMAL 895if you have the last split of the archive (the ".zip" file). If this 896file is missing, you must use /FIX=FULL to fix the archive, which will 897prompt you for the splits you have. 898 899Currently, the fix options can't recover an entry which has a bad 900checksum or is otherwise damaged. 901<QUALIFIER> 902/FRESHEN 903 904/FRESHEN 905 906Update existing entries in an existing archive. Does not add new files 907to the archive. 908 909See also /DELETE, /DIFFERENCE, /GROW, /UPDATE. 910<QUALIFIER> 911/FULL_PATH 912 913/FULL_PATH (default) 914/NOFULL_PATH 915 916Directs Zip to store the directory part of the file names (relative to 917the current working directory) in the Zip archive. With /NOFULL_PATH, 918Zip stores only the file names, discarding any directory information. 919<QUALIFIER> 920/GROW 921 922/GROW 923/APPEND 924 925Grow (append to) the specified Zip archive, instead of creating a new 926one. If this operation fails, Zip attempts to restore the archive to 927its original state. If the restoration fails, the archive might become 928corrupted. This option is ignored when there's no existing archive or 929when at least one archive member must be updated or deleted. 930 931See also /DELETE, /DIFFERENCE, /FRESHEN, /UPDATE. 932<QUALIFIER> 933/HELP 934 935/HELP[=EXTENDED] 936 937Display Zip's help screen, including the version message. With 938/HELP=EXTENDED, more detailed (longer) help information is shown. 939<QUALIFIER> 940/INCLUDE 941 942/INCLUDE=(file[,...]) 943 944A comma-separated list of files to include when deleting, updating, or 945adding files in the archive. If multiple files are specified, the list 946should be enclosed in parentheses. 947<QUALIFIER> 948/INLIST 949 950/INLIST=list_file 951 952The files matching the filename patterns listed in "list_file" are 953included when deleting, updating, or adding files in the archive. 954The "list_file" is a normal text file with one filename pattern entry per 955line. The name pattern entries are recognized exactly as found in 956"list_file", including leading, embedded, and trailing whitespace or most 957control characters (with exception of LineFeed and probably CarriageReturn). 958<QUALIFIER> 959/JUNK 960 961/JUNK 962/NOJUNK (default) 963 964Junk (discard) the directory part of the file names for added entries 965(do not not save the directory structure). The /JUNK qualifier is an 966alias for /NOFULL_PATH. 967<QUALIFIER> 968/KEEP_VERSION 969 970/KEEP_VERSION 971/NOKEEP_VERSION (default) 972 973Directs Zip to retain VMS file version numbers on names in an archive. 974By default, for compatibility with non-VMS systems, Zip strips VMS 975file version numbers from the names stored in an archive. Thus, without 976/DOT_VERSION or /KEEP_VERSION, a version number wildcard (";*") can 977cause errors when multiple versions of a single file are treated as 978multiple files with the same name. 979 980See also /DOT_VERSION. 981<QUALIFIER> 982/LATEST 983 984/LATEST 985 986The archive's creation and modification time is set to the latest 987modification time of all archive members. 988<QUALIFIER> 989/LEVEL 990 991/LEVEL=number 992 993Specifies the compression level: 994<LITERAL> 995| 0 Store 996| 1 Fastest compression (Defl:F) 997| ... 998| 9 Best compression (Defl:X) 999<LARETIL> 1000 1001The default level is 6. 1002<QUALIFIER> 1003/LICENSE 1004 1005/LICENSE 1006 1007Displays the Zip license. 1008<QUALIFIER> 1009/LOG_FILE 1010 1011/LOG_FILE=(FILE=log_file [, APPEND] [, INFORMATIONAL]) 1012 1013Zip normally sends messages to the user's terminal, but these may be 1014also directed to a log file. 1015 1016<LITERAL> 1017 FILE=log_file 1018<LARETIL> 1019 1020Open a logfile at the given path. By default, a new version will be 1021created. 1022 1023<LITERAL> 1024 APPEND 1025<LARETIL> 1026 1027Append to an existing log file. Default is to create a new version. 1028 1029<LITERAL> 1030 INFORMATIONAL 1031<LARETIL> 1032 1033Only warnings and errors are written to the log unless the INFORMATIONAL 1034option is also specified, then all information messages are also written 1035to the log. 1036<QUALIFIER> 1037/MOVE 1038 1039/MOVE 1040 1041Move the specified files into the Zip archive. That is, Zip will delete 1042any files which are successfully added to or updated in the archive. No 1043deletions will be done until the Zip operation has completed with no 1044errors. This option is obviously dangerous and should be used with 1045care, but it does reduce the need for free disk space. It's recommended 1046that /TEST also be used to test the archive before the input files are 1047deleted. 1048<QUALIFIER> 1049/MUST_MATCH 1050 1051/MUST_MATCH 1052 1053All input patterns must match at least one file and all input files 1054found must be readable. Normally when an input pattern does not match 1055a file the "name not matched" warning is issued and when an input 1056file has been found but later is missing or not readable a "missing or 1057not readable" warning is issued. In either case Zip continues 1058creating the archive, with missing or unreadable new files being skipped 1059and files already in the archive remaining unchanged. After the 1060archive is created, if any files were not readable zip returns the OPEN 1061error code (18 on most systems) instead of the normal success return (0 1062on most systems). With /MUST_MATCH, Zip exits as soon as an input 1063pattern is not matched (whenever the "name not matched" warning would be 1064issued) or when an input file is not readable. In either case Zip exits 1065with an OPEN error and no archive is created. 1066 1067This option is useful when a known list of files is to be zipped so any 1068missing or unreadable files should result in an error. It may be less 1069useful when used with wildcards, but Zip will still exit with an error 1070if any input pattern doesn't match at least one file or if any 1071matched files are unreadable. If you want to create the archive anyway 1072and only need to know if files were skipped, then don't use /MUST_MATCH 1073and just check the exit status. Also, a log file (see /LOG_FILE) could 1074be useful. 1075<QUALIFIER> 1076/PATTERN_CASE 1077 1078/PATTERN_CASE={BLIND|SENSITIVE} 1079 1080<LITERAL> 1081| BLIND Use case-blind pattern matching for archive entry names. 1082| SENSITIVE Use case-sensitive pattern matching for archive entry 1083| names. (Default.) 1084<LARETIL> 1085 1086By default, on VMS, archive name pattern matching (/COPY_ENTRIES, 1087/DELETE, /EXCLUDE, /INCLUDE, and /RECURSE=FILENAMES) is case sensitive, 1088even when the file system is not case sensitive (or even case 1089preserving). This allows accurate matching of mixed-case names in an 1090archive which may have been created on a system with a case sensitive 1091file system, but it can involve extra effort on VMS, where it may be 1092necessary to use unnatural case names (or the same names in multiple 1093cases, like "*.obj *.OBJ") for this kind of pattern matching to give the 1094desired behavior. If completely case-blind pattern matching behavior is 1095desired, specify the /PATTERN_CASE=BLIND option. 1096<QUALIFIER> 1097/PKZIP 1098 1099/PKZIP 1100/NOPKZIP (default) 1101 1102Create PKZIP-compatible archive entries. File names and paths are 1103adjusted to conform to MSDOS character-set and length 1104limitations, to store only the MSDOS file attributes (just the 1105owner:write attribute from VMS), and to mark the entry as made under 1106MSDOS (even though it wasn't). 1107<QUALIFIER> 1108/PRESERVE_CASE 1109 1110/NOPRESERVE_CASE 1111/PRESERVE_CASE[=(keyword[, ...])] 1112 1113Directs Zip to preserve the case of, or convert to lower-case, file names 1114in the archive. Optional keywords are: 1115<LITERAL> 1116| NOODS2 Down-case ODS2 file names (default). 1117| NOODS5 Down-case ODS5 file names. 1118| ODS2 Preserve case of ODS2 file names. 1119| ODS5 Preserve case of ODS5 file names (default). 1120<LARETIL> 1121 1122By default, file names from an ODS2 file system are converted to lower 1123case for storage in an archive, while the case of file names from an 1124ODS5 file system is preserved. 1125 1126/NOPRESERVE_CASE is equivalent to /PRESERVE_CASE = (NOODS2, NOODS5), 1127which causes all file names to be converted to lower-case. This is 1128equivalent to the behavior of Zip before version 3.0. 1129 1130/PRESERVE_CASE is equivalent to /PRESERVE_CASE = (ODS2, ODS5), which 1131preserves the case of all file names. 1132<QUALIFIER> 1133/QUIET 1134 1135/QUIET 1136 1137Quiet mode. Eliminates informational messages and comment prompts. 1138This mode may be useful in command procedures, or if the Zip operation 1139is being performed as a background task ("$ spawn/nowait zip /quiet foo 1140*.c"). 1141<QUALIFIER> 1142/RECURSE 1143 1144/RECURSE[=KEYWORD] 1145/NORECURSE (default) 1146 1147Directs Zip to recurse into subdirectories. 1148The optional keywords recognized are: 1149<LITERAL> 1150| PATH take patterns as full path specifiers (-r) (default) 1151| FILENAMES start from current dir; 1152| only use filename part of file patterns (-R) 1153<LARETIL> 1154The optional FILENAMES keyword modifies the recursion algorithm to be 1155(almost) compatible to PKZIP's behaviour on subdirectory recursion. 1156 1157On VMS, directory recursion can also be requested by using the 1158directory depth wildcard ("[...]") in an input file specification. 1159<QUALIFIER> 1160/SHOW 1161 1162/SHOW=(KEYWORD[,KEYWORD[...]]) 1163 1164Controls various diagnostic messages. 1165 1166The keywords recognized are: 1167<LITERAL> 1168| COMMAND Show command line arguments as processed (only, then exit). 1169| DEBUG Show Debug information. 1170| FILES Show files to process (only, then exit). 1171| OPTIONS Show all available command-line options on this system. 1172<LARETIL> 1173<QUALIFIER> 1174/SINCE 1175 1176/SINCE=VMS_date_time 1177 1178Restricts the files by date-time when adding, updating, or freshening an 1179archive. Only files with modification date-times at or later than the 1180specified date-time are accepted. 1181 1182See also /BEFORE. 1183<QUALIFIER> 1184/SPLIT 1185 1186/SPLIT = (SIZE=size [, PAUSE [, BELL]] [, VERBOSE]) 1187 1188Enables split archives, specifies the size of the splits, and controls 1189other related behavior. 1190 1191SIZE=size specifies the split size. The size is given as a number 1192followed optionally by a multiplier suffix of k (KB), m (MB, the default 1193if no suffix is specified), g (GB), or t (TB). (All are powers of 1024, 1194not 1000). 64K is the minimum split size. For example, the following 1195command could be used to create a split archive called "foo" from the 1196contents of the "bar" directory with splits of 670MB, which might be 1197useful for burning on CDs: 1198 1199<LITERAL> 1200| zip /split = size = 670m foo [.bar...]*.* 1201<LARETIL> 1202 1203Using /SPLIT without PAUSE as above creates all the splits in the 1204directory 1205specified by "foo", in this case the current default directory. This 1206split mode updates the splits as the archive is being created, requiring 1207all splits to remain writable, but creates split archives that are 1208readable by any UnZip that supports split archives. See PAUSE below for 1209enabling split pause mode which allows splits to be written directly to 1210removable media. 1211 1212PAUSE causes Zip to pause between splits to allow 1213changing removable media, for example. PAUSE uses stream mode to 1214write splits so unzips that can't read stream mode entries may not 1215be able to read some entries in the archive. Unless standard encryption 1216was used, copy mode using /COPY_ENTRIES can convert stream mode entries 1217to normal entries. 1218 1219BELL ring the terminal bell when Zip pauses for the next split 1220destination. 1221 1222VERBOSE enables verbose splitting and display details of how the 1223splitting is being done. 1224 1225Though Zip does not update split archives, Zip provides the option 1226/OUTPUT to allow split archives to be updated and saved in a new 1227archive. For example: 1228 1229<LITERAL> 1230| zip inarchive.zip foo.c bar.c /output = outarchive.zip 1231<LARETIL> 1232 1233reads archive inarchive.zip, even if split, adds the files foo.c and 1234bar.c, and writes the resulting archive to outarchive.zip. If 1235inarchive.zip is split, then outarchive.zip defaults to the same split 1236size. Be aware that outarchive.zip and any split files that are created 1237with it are always overwritten without warning. This may be changed in 1238the future. 1239<QUALIFIER> 1240/STORE_TYPES 1241 1242/STORE_TYPES=(.ext1,.ext2,... ) 1243 1244Normally, a file which is already compressed will not be compressed much 1245further (if at all) by Zip, and trying to do it can waste considerable 1246CPU time. Zip can suppress compression on files with particular types, 1247specified with /STORE_TYPES. The default list of types where 1248compression is suppressed is /STORE_TYPES=(.Z, .zip, .zoo, .arc, .lzh, 1249 .arj), and the comparison is case-insensitive. 1250 1251/LEVEL=9 will override /STORE_TYPES, causing compression to be attempted 1252for all files. 1253<QUALIFIER> 1254/SYMLINKS 1255 1256/SYMLINKS 1257 1258Store symbolic links as such in the Zip archive, instead of compressing 1259and storing the file referred to by the link. A symbolic link normally 1260requires less storage than the actual file, both in the archive, and on 1261the destination file system. 1262 1263On VMS, symbolic links are supported on ODS5 disks where the C RTL 1264supports symbolic links. Full support for symbolic links seems to 1265require VMS V8.3, but a Zip program supporting symbolic links may be 1266built on VMS V7.3-2. 1267<QUALIFIER> 1268/TEMP_PATH 1269 1270/TEMP_PATH=temp_dir 1271 1272When creating a new archive or normally when changing an existing 1273archive, Zip will write a temporary file in the archive destination 1274directory ("ZIxxxxxxxx", where "xxxxxxxx" is the hexadecimal process ID) 1275with the new contents. Then, if and when the Zip job has completed with 1276no errors, it will rename the temporary file to the specified archive 1277name (replacing the old archive, if any). 1278 1279/TEMP_PATH=temp_dir specifies an alternate device:[directory], 1280"temp_dir", for the temporary file, but specifying a different device 1281will force Zip to copy the temporary file to its final destination 1282instead of simply renaming it, and that copying will take more time than 1283renaming, especially for a large archive. For example: 1284 1285<LITERAL> 1286| zip /temp_path = disk$scratch:[tmp] stuff * 1287<LARETIL> 1288 1289will cause Zip to put its temporary files in the directory 1290"disk$scratch:[tmp]", copying the temporary file back to the current 1291directory as stuff.zip when it's complete. 1292<QUALIFIER> 1293/TEST 1294 1295/TEST[=UNZIP=unzip_cmd] 1296 1297Test the integrity of a Zip archive (the new one, if /OUTPUT is 1298specified). If the check fails, the old archive is unchanged and 1299(with the /MOVE option) no input files are removed. 1300 1301Implementation 1302"zip /TEST" actually runs an "unzip -t" command to do the testing, so 1303UnZip must be installed properly for this to work. 1304 1305With UNZIP=unzip_cmd, Zip uses the UnZip command specified by 1306"unzip_cmd" (normally a DCL symbol), instead of the default command, 1307"unzip -t". This can be useful if multiple versions of UnZip are 1308installed on a system, and the default DCL symbol "UNZIP" would run the 1309wrong one (or the logical name DCL$PATH would lead to the wrong one). 1310 1311In "unzip_cmd", the string "{}" is replaced by the name of the 1312(temporary) archive to be tested, otherwise the name of the archive is 1313appended to the end of the command. The exit status is checked for 1314success severity. 1315<QUALIFIER> 1316/TRANSLATE_EOL 1317 1318/TRANSLATE_EOL[=KEYWORD] 1319 1320Selects conversion of the end-of-line markers in text files. This 1321option should be used on text files only. The optional keywords 1322recognized are: 1323<LITERAL> 1324| LF convert LF -> CRLF (UNIX to DOS) (default) 1325| CRLF convert CRLF -> LF, strip trailing CTRL-Z's (DOS to UNIX) 1326<LARETIL> 1327 1328The CRLF option may be useful when a DOS text file has been transfered 1329to a VMS disk in stream (or stream_lf) format. 1330<QUALIFIER> 1331/UNSFX 1332 1333/UNSFX 1334 1335Strip any prepended data from the Zip archive. ZIP /UNSFX is normally 1336used to convert a self-extracting archive to a normal archive by 1337removing the UnZip SFX executable from the beginning of the SFX archive. 1338 1339Note that a self-extracting archive contains a normal Zip archive, and a 1340normal UnZip program can be used to expand it in the normal way. You 1341may get a warning about extra bytes at the beginning of the archive (the 1342UnZip SFX program), but UnZip should work properly after that. This 1343allows data in a self-extracting archive to be accessed on any system, 1344not just the target system where its embedded UnZip SFX program runs. 1345<QUALIFIER> 1346/UPDATE 1347 1348/UPDATE 1349 1350Update existing archive entries and add new files. If the archive does 1351not exist, create it. This is the default mode, so /UPDATE is optional. 1352 1353See also /DELETE /DIFFERENCE, /GROW, /FRESHEN. 1354<QUALIFIER> 1355/VERBOSE 1356 1357/VERBOSE[=NORMAL|MORE|DEBUG] [, COMMAND]] 1358 1359Verbose mode or print diagnostic version info. 1360 1361Normally, when applied to real operations, this option enables the 1362display of a progress indicator during compression (see /DISPLAY=DOTS 1363for more on dots) and requests verbose diagnostic info about archive 1364structure oddities. 1365 1366/VERBOSE with no value is equivalent to /VERBOSE=NORMAL. MORE adds more 1367messages, and DEBUG adds still more messages. 1368 1369When /VERBOSE is the only command line argument, a diagnostic report is 1370displayed, showing: 1371 1372<LITERAL> 1373| o Copyright and other legal notices 1374| o Program name, version, and release date 1375| o Pointers to Info-ZIP FTP and Web sites 1376| o Program build information (compiler type and version, OS version, 1377| and the compilation date 1378| o Optional features enabled at compile-time 1379| o Environment variable definitions (ZIP_OPTS, ZIPOPT) 1380<LARETIL> 1381 1382This information should be included in bug reports. 1383 1384/VERBOSE=COMMAND causes Zip to display the UNIX-style command-line 1385argument vector which is generated from the VMS-style CLI command line 1386before executing the command. This is of primary interest to program 1387developers debugging the CLI. 1388<QUALIFIER> 1389/VMS 1390 1391/VMS[=ALL] 1392 1393The /VMS and /VMS=ALL options cause Zip to store VMS file atributes 1394(such as file organization, record format, carriage control, and so on) 1395in VMS-specific "extra fields" in an archive along with the usual data. 1396These extra fields are ignored on non-VMS systems, but on a VMS system, 1397they allow UnZip to restore the files with their VMS attributes intact. 1398 1399With /VMS, Zip ignores any data in the file after the end-of-file (EOF) 1400point (defined by FAT$L_EFBLK and FAT$W_FFBYTE), which works well for 1401well-formed files (that is, those with no valid data beyond EOF). 1402Portable-format files (Stream_LF, fixed-512) archived with /VMS should 1403be extracted properly on a non-VMS system. Files with more complex 1404structures, such as indexed files and files with embedded byte counts or 1405other such data may be of limited use on other systems. (UnZip on 1406non-VMS systems may be able to extract various VMS-format text files, 1407however.) 1408 1409With /VMS=ALL, Zip processes all allocated blocks for the file 1410(including those beyond EOF). When extracted on a VMS system, the 1411original file should be reproduced with as much fidelity as possible, 1412but on a non-VMS system, most files will be seen as corrupt because of 1413the data from beyond EOF. 1414<QUALIFIER> 1415/WILDCARD 1416 1417<LITERAL> 1418/NOWILDCARD 1419/WILDCARD=NOSPAN 1420<LARETIL> 1421 1422Controls wildcard processing. 1423 1424/NOWILDCARD Wildcard processing is disabled. 1425 1426/WILDCARD=NOSPAN Wildcards don't span directory boundaries in paths. 1427<QUALIFIER> 1428/ZIP64 1429 1430/ZIP64 1431 1432Forces use of Zip64 archive format, even for small files. This is 1433mainly for testing and should never be used. Zip will automatically 1434use Zip64 as needed without this option. 1435<TOPIC> 1436UNIX_Options 1437 1438"zip -h" provides a concise list of common command-line options. "zip 1439-h2" provides more details. "zip -so" provides a list of all available 1440options. "zip -v" shows the program version and available features. 1441(The list below was derived from a "zip -so" listing.) 1442 1443Short-form options begin with a single hyphen ("-"). Long-form option 1444begin with a double hyphen ("--"), and may be abbreviated to any 1445unambiguous shorter string. For example: 1446 1447<LITERAL> 1448| -v 1449| --verbose 1450| --verb 1451<LARETIL> 1452 1453To avoid confusion, if a negatable option contains an embedded hyphen 1454("-"), then avoid abbreviating it at the hyphen if you plan to negate 1455it. For example, if an option like --some-option were abbreviated to 1456--some-, the parser would consider that trailing hyphen to be part of 1457the option name, rather than as a negating trailing hyphen. This 1458behavior may change in the future, to interpret the trailing hyphen in 1459--some- to be negating. (So don't do it.) 1460 1461Some options may be negated (or modified) by appending a "-": 1462 1463<LITERAL> 1464| -la- 1465| --show-files- 1466<LARETIL> 1467 1468Some options take a value, which may immediately follow the option, or 1469be separated by a space or "=". For example: 1470<LITERAL> 1471| -ttmmddyyyy 1472| -tt mmddyyyy 1473| -tt=mmddyyyy 1474<LARETIL> 1475 1476<LITERAL0> 1477| Sh Long Description 1478|----+-------------------+------------------------------------------------ 1479| 0 store store (instead of compress) 1480| 1 compress-1 compress faster (-2, -3, -4, ...) 1481| 9 compress-9 compress better 1482| ? show the Zip help screen 1483| @ names-stdin read input file patterns from SYS$INPUT (1/line) 1484| A adjust-sfx adjust self-extracting executable 1485| b temp-path path use "path" directory for temporary files 1486| C preserve-case preserve case of all file names added to archive 1487| C- preserve-case- down-case all file names added to archive 1488| C2 preserve-case-2 preserve case of ODS2 names added to archive 1489| C2- preserve-case-2- down-case ODS2 file added to archive (default) 1490| C5 preserve-case-5 preserve case of ODS5 names added to arcv (dflt) 1491| C5- preserve-case-5- down-case ODS5 names added to archive 1492| c entry-comments add a comment for each entry added to archive 1493| D no-dir-entries do not add archive entries for directories 1494| DF difference-archive difference archive: add only changed/new files 1495| d delete delete entries in archive 1496| db display-bytes display running byte counts 1497| dc display-counts display running file counts 1498| dd display-dots display progress dots for files (dflt sz = 10MB) 1499| dg display-globaldots display progress dots for archive, not each file 1500| ds dot-size size set progress dot interval to "size" (MB) 1501| du display-usize display original uncompressed size for entries 1502| dv display-volume display volume (disk) number as in_disk>out_disk 1503| e encrypt encrypt entries, ask for password 1504| F fix fix mostly intact archive (try F before FF) 1505| FF fixfix salvage what can be salvaged (not as reliable) 1506| FS filesync remove archive entries unmatched in file system 1507| f freshen update existing entries (only changed files) 1508| fd force-descriptors force data descriptors as if streaming 1509| fz force-zip64 force use of Zip64 format 1510| g grow grow existing archive (unless update or delete) 1511| H show the Zip help screen 1512| h help show the Zip help screen 1513| h2 more-help show extended Zip help 1514| i include pat1 [pat2 [...]] include only names matching the patterns 1515| J junk-sfx junk (remove) archive preamble (unzipsfx) 1516| j junk-paths junk (don't store) dir names, only file names 1517| k DOS-names simulate PKZIP-made archive (DOS 8.3 names) 1518| L license show software license 1519| l to-crlf translate end-of-lines (LF -> CRLF) 1520| la log-append append to existing log file 1521| lf logfile-path lfile log to log file at lfile (default: new version) 1522| li log-info include informational messages in log 1523| ll from-crlf translate end-of-lines (CRLF -> LF) 1524| MM must-match input file spec must exist (wildcrds must match) 1525| m move delete files added to archive 1526| n suffixes sfx1[:sfx2[...]] don't compress files with these suffixes 1527| nw no-wild no wildcards during add or update 1528| O output-file ozf use "ozf" as the output archive (dflt = inp archv) 1529| o latest-time set archive date-time to match oldest entry 1530| P password password encrypt with supplied "password" string 1531| q quiet quiet operation (no info messages) 1532| R recurse-patterns recurse subdirs from cur dir, match names only 1533| r recurse-paths recurse directories from specified path pats 1534| s split-size size split archive at "size" (K/MB) (0: don't split) 1535| sb split-bell ring termnl bell at pause for split medium chng 1536| sc show-command show command line 1537| sd show-debug show debug messages 1538| sf show-files show files to process (only) 1539| so show-options show list of all command-line options 1540| sp split-pause pause to select split destination(s) 1541| sv split-verbose be verbose about creating splits 1542| T test test archive integrity (runs UnZip -T) 1543| t from-date mmddyyyy only do files since (at or after) "mmddyyyy" 1544| tt before-date mmddyyyy only do files before "mmddyyyy" 1545| u update update changed files, add new files (default) 1546| V VMS-portable save VMS file attributes 1547| VV VMS-specific save VMS file attributes and all allocated blks 1548| v verbose verbose messages (version info if only arg) 1549| w VMS-versions save VMS version numbers in archive 1550| ww VMS-dot-versions save VMS version numbers as ".nnn", not ";nnn" 1551| X strip-extra strip all but critical extra fields 1552| X- strip-extra- keep all extra fields 1553| x exclude pat1 [pat2 [...]] exclude all names matching the patterns 1554| Z compression-method mthd use cmprs method "mthd" (bzip2 or deflate) 1555| z archive-comment ask for archive comment 1556<0LARETIL> 1557 1558With SET PROCESS /PARSE_STYLE = EXTENDED (available on recent non-VAX 1559systems), Zip preserves the case of the command line. Otherwise, mixed- 1560or upper-case options and arguments must be quoted. For example, 1561"-V". Examples in this document generally do not show this quotation. 1562<TOPIC> 1563Copyright_and_License 1564 1565Zip has an option to display its copyright and license. 1566 1567<LITERAL> 1568| /LICENSE 1569<LARETIL> 1570 1571The license is reproduced below. 1572 1573This is version 2007-Mar-4 of the Info-ZIP license. The definitive 1574version of this document should be available at 1575ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely and a copy 1576at http://www.info-zip.org/pub/infozip/license.html. 1577 1578-------------------------------------------------------- 1579<LITERAL0> 1580|Copyright (c) 1990-2007 Info-ZIP. All rights reserved. 1581| 1582|For the purposes of this copyright and license, "Info-ZIP" is defined as 1583|the following set of individuals: 1584| 1585|Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, 1586|Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth, 1587|Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, 1588|David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, 1589|Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, 1590|Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda, 1591|Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren, 1592|Rich Wales, Mike White. 1593| 1594|This software is provided "as is," without warranty of any kind, express 1595|or implied. In no event shall Info-ZIP or its contributors be held 1596|liable for any direct, indirect, incidental, special or consequential 1597|damages arising out of the use of or inability to use this software. 1598| 1599|Permission is granted to anyone to use this software for any purpose, 1600|including commercial applications, and to alter it and redistribute it 1601|freely, subject to the above disclaimer and the following restrictions: 1602| 1603|1. Redistributions of source code (in whole or in part) must retain 1604| the above copyright notice, definition, disclaimer, and this list 1605| of conditions. 1606| 1607|2. Redistributions in binary form (compiled executables and libraries) 1608| must reproduce the above copyright notice, definition, disclaimer, 1609| and this list of conditions in documentation and/or other materials 1610| provided with the distribution. The sole exception to this condition 1611| is redistribution of a standard UnZipSFX binary (including SFXWiz) as 1612| part of a self-extracting archive; that is permitted without inclusion 1613| of this license, as long as the normal SFX banner has not been removed 1614| from the binary or disabled. 1615| 1616|3. Altered versions -- including, but not limited to, ports to new 1617| operating systems, existing ports with new graphical interfaces, 1618| versions with modified or added functionality, and dynamic, shared, 1619| or static library versions not from Info-ZIP -- must be plainly marked 1620| as such and must not be misrepresented as being the original source 1621| or, if binaries, compiled from the original source. Such altered 1622| versions also must not be misrepresented as being Info-ZIP releases -- 1623| including, but not limited to, labeling of the altered versions with 1624| the names "Info-ZIP" (or any variation thereof, including, but not 1625| limited to, different capitalizations), "Pocket UnZip," "WiZ" or 1626| "MacZip" without the explicit permission of Info-ZIP. Such altered 1627| versions are further prohibited from misrepresentative use of the 1628| Zip-Bugs or Info-ZIP e-mail addresses or the Info-ZIP URL(s), such as 1629| to imply Info-ZIP will provide support for the altered versions. 1630| 1631|4. Info-ZIP retains the right to use the names "Info-ZIP", "Zip", 1632| "UnZip", "UnZipSFX", "WiZ", "Pocket UnZip", "Pocket Zip", and 1633| "MacZip" for its own source and binary releases. 1634<0LARETIL> 1635 1636=== 1637