.! .! File: UNZIP_CLI.HELP .! .! Author: Hunter Goatley .! .! Date: 12 Jul 94 (orig. UNZIP.RNH, 23 Oct 91) .! .! Description: .! .! TPU-processable source file to produce VMS on-line help for .! portable UnZip. Adapted from UNZIP.RNH, originally based on .! UNZIP.MAN (now UNZIP.TXT). .! .! To build: .! $ EDIT /TPU/NOSECTION/NODISPLAY/COMMAND=CVTHELP.TPU UNZIP_CLI.HELP .! $ RUNOFF /OUT=UNZIP.HLP UNZIP_CLI.RNH .! $ LIBR /HELP/INSERT libr UNZIP .! .! Modification history: .! .! 02-001 Hunter Goatley 12-JUL-1994 16:59 .! Genesis. .! 02-002 Cave Newt 14-JUL-1994 11:36 .! Fixed /*TEXT options and added/removed various options. .! 02-003 Cave Newt 28-JUL-1994 08:54 .! Removed semicolons from comments and moved /ZIPINFO. .! 02-004 Christian Spieler 06-OCT-1995 02:02 .! Changed to conform to revised .CLD definition. .! 02-005 Christian Spieler 06-FEB-1996 02:20 .! Added description of /HELP qualifier. .! 02-006 Christian Spieler 12-MAY-1996 00:50 .! Some clarifications/cleanups. .! 02-007 Christian Spieler 04-MAR-1997 22:25 .! Added /[NO]CASE_INSENSITIVE to ZipInfo mode; .! documented the new /PASSWORD="decryption_key" option. .! 02-007 Christian Spieler 22-JUL-1997 22:37 .! Formatting changes (prevent line wraps); .! added "Exit_Codes" subtopic (no version number change). .! 02-007 Christian Spieler 28-APR-2000 03:22 .! Changed references to plaintext UnZip documentation file .! into UNZIP.TXT (no version number change). .! 02-007 Hunter Goatley 07-Feb-2001 15:43 .! Reformatted qualifier item headers to show negated form of .! option qualifier on separate line (no version number change). .! 02-008 Christian Spieler 18-Apr-2001 22:29 .! Added description for extended functionality of -b option. .! 02-009 Christian Spieler 10-Dec-2001 13:37 .! Added description for new /TRAVERSE_DIRS option. .! 02-010 Steven Schweda 28-Jan-2005 16:16:36 .! Added /TIMESTAMP (-T) qualifier. .! 02-010 Christian Spieler 29-Jan-2005 01:50 .! Completed description of -T qualifier (also for UNIX style). .! 02-011 Steven Schweda 14-FEB-2005 20:04 .! Added /DOT_VERSION (-Y) and /ODS2 (-2) qualifiers. .! 02-012 Steven Schweda 07-JUL-2006 01:30 .! Added /TEXT = STMLF (-s) qualifier. .! 02-012 Christian Spieler 04-Mar-2007 14:39 .! Changed -s qualifier into -S; .! updated documentation of UnZip's exit codes. .! 03-002 S. Schweda, C. Spieler 09-Jan-2008 03:35 .! Added documentation of extended /RESTORE=(...) qualifier. .! 03-003 S. Schweda, C. Spieler 13-Sep-2008 20:00 .! Added /EXISTING qualifier. .!
UNZIP UnZip is used to extract files compressed and packaged by Zip (see HELP ZIP for information on ZIP). For a brief help on Zip and Unzip, run each without specifying any parameters on the command line (or apply the /HELP qualifier). To get a brief help sceen about the alternate UNIX style command interface, run each with the -h option applied. UNZIP will list, test, or extract from a ZIP archive. ZIP archives are commonly found on MS-DOS systems; a VMS version of ZIP can also be found here. Archive member extraction is implied by the absence of the /SCREEN (-c), /PIPE (-p), /TEST (-t), /TIMESTAMP (-T), /LIST (-l, -v) or /COMMENT (-z) qualifiers (options). All archive members are processed unless a filespec is provided to specify a subset of the archive members. UNZIP zipfile [file[,...]] [/qualifiers] .! Parameters zipfile File specification for the ZIP archive(s) with optional wildcards. UnZip will perform actions specified for every zipfile matching the specification. The default file specification is SYS$DISK:[].ZIP. Note that self-extracting ZIP files are supported; just specify the .EXE suffix yourself. file An optional comma-separated list of archive members to be processed; if no list is given, all archive members are processed. Expressions may be used to match multiple members. Expressions should be enclosed in double-quotes to prevent interpretation by DCL. Multiple filenames should be separated by blanks. Each file specification is similar to a Unix egrep expression and may contain: |* matches a sequence of 0 or more characters |? matches exactly 1 character |[...] matches any single character found inside the brackets; | ranges are specified by a beginning character, a hyphen, | and an ending character. If a '!' or '^' immediately | follows the left bracket, then any character not in the | given range is matched. | Hint: To specify a verbatim left bracket '[', the | three-character sequence "[[]" has to be used. /ZIPINFO /ZIPINFO Displays information about the Zip archive and the files contained therein. This function used to be provided by a separate ZipInfo program. The following qualifiers may be specified with /ZIPINFO: | /SHORT Short UNIX "ls -l" format (default) | /MEDIUM Medium UNIX "ls -l" format | /LONG Long UNIX "ls -l" format | /VERBOSE Verbose, multi-page format | /ONE_LINE Filenames only, one per line | /HEADER Print header lines | /TOTALS Print totals for files | /TIMES Print file times in sortable decimal format | /[NO]CASE_INSENSITIVE Match filenames case-insensitively | /[NO]PAGE Page screen output through built-in "more" /BINARY /BINARY[=KEYWORD] /NOBINARY (default) Selects conversion to VMS "standard" binary file format for extracted files, which is "fixed length 512 byte records, no record attributes". When extracting to SYS$OUTPUT (/SCREEN or /PIPE qualifier), this qualifier deactivates the default "text data" conversion, instead. The optional keywords recognized are: | AUTO Automatically extracts files marked as "binary" (rather | than "text") in standard VMS binary file format. (default) | ALL Extracts all files in standard VMS binary file format. | NONE Same as /NOBINARY. Note that a combination of /BINARY[=AUTO] and /TEXT[=AUTO] is allowed. (see /TEXT qualifier) /BRIEF /BRIEF (default) When used with /LIST, specifies that a brief listing of the archive's contents is to be displayed. A brief listing shows the length, date, time, and file name for the files in the archive. /CASE_INSENSITIVE /CASE_INSENSITIVE /NOCASE_INSENSITIVE (default) Match filenames case-insensitively. (Good default option under VMS.) /COMMENT /COMMENT /NOCOMMENT Display the archive comment. /DIRECTORY /DIRECTORY=directory-spec Specifies the output directory where all the extracted files are to be placed. /DOT_VERSION /DOT_VERSION /NODOT_VERSION (default) Causes UnZip to treat archived file name endings of ".nnn" (where "nnn" is a decimal number) as if they were VMS version numbers (";nnn"). (The default is to treat them as file types.) Example: "a.b.3" -> "a.b;3". /EXCLUDE /EXCLUDE=(file[,...]) A comma-separated list of files to exclude when extracting files. If multiple files are specified, the list should be included in parentheses. /EXISTING /EXISTING = keyword Valid keywords (exactly one must be specified) are: | NEW_VERSION Create a new version of an existing file. | OVERWRITE Overwrite the same version of an existing file. | (But only if the archive member name includes a | version number.) | NOEXTRACT Do not extract. An existing file is not affected. When UnZip would extract an archive member, but the destination file already exists, UnZip will, by default, ask the user what to do. /EXISTING lets the user specify on the command line what to do in this situation, eliminating the interactive question(s). NOEXTRACT will always stop UnZip from extracting an archive member if the destination file already exists. If an archive member name does not include a VMS version number, or if UnZip is run with /NOVERSION (the default, causing it to ignore version numbers), then either NEW_VERSION or OVERWRITE will cause UnZip to create a new version of the existing file. If an archive member name does include a VMS version number, and if UnZip is run with /VERSION, then NEW_VERSION will cause UnZip to create a new version of the existing file, and OVERWRITE will cause UnZip to overwrite the existing file which has the version specified by the archive member name. /FRESHEN /FRESHEN /NOFRESHEN Freshen existing files; replace if newer. Does not cause any new files to be created. /FULL /FULL When used with /LIST, specifies that a full listing of the archive's contents is to be displayed. A full listing shows the length, compression method, compressed size, compression ratio, date, time, CRC value, and file name for the files in the archive. /HELP /HELP Displays a one-page brief help screen and exits quietly. /JUNK /JUNK /NOJUNK (default) Junk the stored paths (don't recreated the archive's directory structure. /LIST /LIST List the contents of the archive. /BRIEF and /FULL can be used to specify the amount of information displayed. The default is /BRIEF. /LOWERCASE /LOWERCASE /NOLOWERCASE (default) Convert filenames from all-uppercase operating systems to lowercase. This option has no effect under VMS. /ODS2 /ODS2 /NOODS2 (default) Causes UnZip to convert archived file names to ODS2-compatible file names (substituting "_" for any invalid characters), regardless of the type of the destination file system. The default is to use ODS5-compatible file names when the destination file system is ODS5, and to convert the names to ODS2-compatible names when the destination file system is ODS2. Beginning in UnZip 6.0, ODS2-compatible names are explicitly set to upper case. /OVERWRITE /OVERWRITE /NOOVERWRITE See /EXISTING. /OVERWRITE is equivalent to /EXISTING = NEW_VERSION. /NOOVERWRITE is equivalent to /EXISTING = NOEXTRACT. /PAGE /PAGE /NOPAGE Feed all screen output through the built-in "more" pager. /PASSWORD /PASSWORD=decryption-password Specifies a decryption password and prevents UnZip from prompting for a password in case the specified decryption key was wrong. The supplied string must be enclosed in double-quotes whenever it contains lowercase or special characters. /PIPE /PIPE Extract files to SYS$OUTPUT with no informational messages. /QUIET /QUIET[=SUPER] Perform operations quietly. The keyword SUPER can be specified to make operations even more quiet. /RESTORE /RESTORE[=(KEYWORD, ...)] Selects restoration options for some meta-data. The optional keywords recognized are: | OWNER_PROT Restore file owner and ACL protection settings. | NOOWNER_PROT Do not restore file owner and ACL protection settings. | NODATE Do not restore any timestamps. | DATE=ALL Restore timestamps for all extracted entries, files | and directories. | DATE=FILES Restore timestamps for extracted files. (default) By default, VMS UnZip restores the original date-time attributes for files, but not for directories. This agrees with the behavior of VMS BACKUP (and UnZip versions before 5.52 where the capability to restore directory timestamps was added). For compatibility with UnZip versions before 6.0 (5.53), the following obsolete short forms are still accepted: | Obsolete form: Modern form: | /RESTORE /RESTORE = OWNER_PROT | /NORESTORE /RESTORE = NOOWNER_PROT /SCREEN /SCREEN /NOSCREEN Extracts matching files to SYS$OUTPUT (the terminal). /TEST /TEST /NOTEST Test archive files. /TEXT /TEXT[=(KEYWORD, ...)] /NOTEXT (default) Selects conversion to VMS standard text file format. The optional keywords recognized are: | AUTO Automatically extracts files marked as "text" (rather | than "binary") in standard VMS text file format. (default) | ALL Extracts all files in standard VMS text file format. | NONE Same as /NOTEXT. | STMLF Use Stream_LF record format for text files (instead of the | default variable-length record format). A similar functionality is available for binary files, see qualifier /BINARY. /TIMESTAMP /TIMESTAMP Sets the timestamp of an archive to that of its newest file. This qualifier corresponds to zip's /APPEND/LATEST (-go) option, but can be applied to wildcard zipfile specifications (e.g. "*.zip") and is much faster. /TRAVERSE_DIRS /TRAVERSE_DIRS /NOTRAVERSE_DIRS (default) Allows to extract archive members into locations outside of the currently active "extraction root dir". For security reasons, UnZip normally removes "parent dir" path components ("../") from the names of extracted files. This feature (new for UnZip 5.50) prevents UnZip from accidentally writing files to "sensitive" areas outside the directory tree below the specified "extraction root". By specifying the /TRAVERSE_DIRS option, this security feature can be switched off. This allows users to extract (older) archives that made use of "../" to create multiple directory trees at the level of the current extraction folder. /UPDATE /UPDATE /NOUPDATE Update existing files; create new ones if needed. /VERSION /VERSION /NOVERSION (default) Retain VMS file version numbers. Authors Info-ZIP; currently maintained by Christian Spieler. VMS support maintained by Igor Mandrichenko, Steven M. Schweda, Christian Spieler and Hunter Goatley. Originally based on a program by Samuel H. Smith. VMS on-line help ported from UNZIP.TXT by Hunter Goatley. Exit_Status On VMS, UnZip's UNIX-style exit values are mapped into VMS-style status codes with facility code 1954 = %x7A2, and with the inhibit-message (%x10000000) and facility-specific (%x00008000) bits set: | %x17A28001 normal exit | %x17A28000 + 16*UnZip_error_code warnings | %x17A28002 + 16*UnZip_error_code normal errors | %x17A28004 + 16*UnZip_error_code fatal errors Note that multiplying the UNIX-style UnZip error code by 16 places it conveniently in the hexadecimal representation of the VMS exit code, "__" in %x17A28__s, where "s" is the severity code. For example, a missing archive might cause UnZip error code 9, which would be transformed into the VMS exit status %X17A28092. The UnZip VMS exit codes include severity values which approximate those defined by PKWARE, as shown in the following table: | VMS UnZip err | severity code Error description | ----------+---------+---------------------------------------------- | Success 0 Normal. No errors or warnings detected. | Warning 1 One or more warnings were encountered, but | processing completed successfully anyway. | This includes archives where one or more | (but not all) files were skipped because of | unsupported compress or encrypt methods, or | bad passwords. | Error 2 Error in the archive format. Processing may | have completed successfully anyway. Some | defects in archives (made by other programs) | can be repaired transparently. | Fatal 3 Severe error in the archive format. Process- | ing probably failed immediately. | Fatal 4 Memory allocation failed in program initial- | ization. | Fatal 5 Memory allocation failed in password pro- | cessing. | Fatal 6 Memory allocation failed while decompressing | to disk. | Fatal 7 Memory allocation failed while decompressing | in memory. | Fatal 8 Memory allocation failed (reserved for | future use). | Error 9 Specified archive files were not found. | Error 10 Invalid command-line options or parameters. | Error 11 No files matched selection criteria. | Fatal 50 Disk full. | Fatal 51 Unexpected end-of-file while reading the | archive. | Error 80 User interrupt (Ctrl/C). | Error 81 No files were processed, because of unsup- | ported compress or encrypt methods. | Error 82 No files were processed, because of bad | password(s). | Fatal 83 Large-file archive could not be processed by | this small-file program. UNIX_Options The default action of UnZip is to extract all zipfile entries. The following options and modifiers can be provided: | -Z ZipInfo mode | -c extract files to SYS$OUTPUT (terminal) | -f freshen existing files (replace if newer); create none | -h show brief help screen and exit quietly | -l list archive files (short format) | -p extract files to SYS$OUTPUT; no informational messages | -t test archive files | -T set zipfile timestamps to that of each archive's newest entry | -u update existing files; create new ones if needed | -v list archive files (verbose format) | -z display only the archive comment | |MODIFIERS | -a extract text files in standard VMS text file format | -aa extract all files as text | -b auto-extract only binary files in fixed 512-byte record format | -bb extract all files as binary in fixed 512-byte record format | -j junk paths (don't recreate archive's directory structure) | -n never overwrite or make a new version of an existing file | -o always make a new version (-oo: overwrite orig) existing file | -q perform operations quietly (-qq => even quieter) | -C match filenames case-insensitively | -D do not restore any timestamps (--D restore them even for dirs) | -L convert filenames to lowercase if created under DOS, VMS, etc. | -M feed screen output through built-in "more" pager | -P supply decryption password on the cmd line (insecure!) | -S use Stream_LF record format to extract text files (with -a[a]) | -V retain (VMS) file version numbers | -X restore owner/ACL protection info (may require privileges) | -Y treat ".nnn" suffix as version number ("a.b.3" -> "a.b;3") | -: allow "../" path components to traverse across top extract dir | -2 force creation of ODS2-compatible file names Note that uppercase options such as -C, -D, -L, -M, -P, -S, -T, -V, -X, -Y, and -Z must be specified in quotes (unless SET PROC/PARSE=EXTEND is set). For example: | $ unzip "-VX" -a zipfile UNZIP_OPTS_Default UnZip allows to modify its default behaviour by specifying (UNIX style) option defaults via the UNZIP_OPTS logical name. For example, the following will cause UnZip to match filenames without regard to case, restore owner/protection information and perform all operations at quiet-level 1 by default: | $ define UNZIP_OPTS "-qCX" Note that the quotation marks here are required to preserve lowercase options (opposite of the command-line behavior). To negate a default option on the command line, add one or more minus signs before the option letter, in addition to the leading switch character `-': | $ unzip --ql zipfile or | $ unzip -l-q zipfile At present it is not possible to decrement an option below zero--that is, more than a few minuses have no effect. UNZIP_OPTS may be defined as a symbol rather than a logical, but if both are defined, the logical is used.