1 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), /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] 2 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. 2 Qualifiers /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. /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. /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. /OVERWRITE /OVERWRITE /NOOVERWRITE The qualifier /OVERWRITE forces overwriting of existing files when extracting. The negation /NOOVERWRITE results in never overwriting an existing file. The default action is to prompt for desired action when about to overwrite an existing file. For VMS, "overwriting" results in the creation of a new version of the file, unless version numbers are stored in the archive and /VERSION is specified. /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 /NORESTORE Restore file owner and protection settings. /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. A similar functionality is available for binary files, see qualifier /BINARY. /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. 2 Authors Info-ZIP; currently maintained by Greg Roelofs. VMS support maintained by Igor Mandrichenko, 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. 2 Exit_Codes On VMS, UnZip's UNIX style exit values are mapped into proper VMS status codes: 1 (success) normal exit, (0x7fff0000 + 16*UnZip_errnum) -W- warnings (0x7fff0002 + 16*UnZip_errnum) -E- normal errors (0x7fff0004 + 16*UnZip_errnum) -F- fatal errors The UnZip error level (or exit code) approximates the exit codes defined by PKWARE and takes on the following values: VMS UnZip Type of error severity errcode - 0 normal; no errors or warnings detected. W 1 one or more warning errors were encountered, but processing completed successfully any- way. This includes zipfiles where one or more files was skipped due to unsupported compression method or encryption with an unknown password. E 2 a generic error in the zipfile format was detected. Processing may have completed successfully anyway; some broken zipfiles created by other archivers have simple work- arounds. F 3 a severe error in the zipfile format was detected. Processing probably failed imme- diately. F 4 unzip was unable to allocate memory for one or more buffers during program initializa- tion. F 5 unzip was unable to allocate memory or unable to obtain a tty to read the decryp- tion password(s). F 6 unzip was unable to allocate memory during decompression to disk. F 7 unzip was unable to allocate memory during in-memory decompression. F 8 [currently not used] E 9 the specified zipfiles were not found. E 10 invalid options were specified on the com- mand line. E 11 no matching files were found. F 50 the disk is (or was) full during extraction. F 51 the end of the ZIP archive was encountered prematurely. E 80 the user aborted unzip prematurely with con- trol-C (or similar) E 81 no files were found due to unsupported com- pression methods or unsupported decryption. (If even one additional file is successfully processed, however, the exit status is 1.) E 82 no files were found due to bad decryption password(s). This is also the exit status if no files were found due to a combination of unsupported compression and bad pass- words. As in the previous case, however, a single successful file will result in an exit status of 1 instead.) In addition, there is a compilation option to expand upon this behavior: An executable compiled with the option RETURN_CODES defined displays a human-readable explanation of what the error status means. 2 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 -u update existing files; create new ones if needed -v list archive files (verbose format) -z display only the archive comment MODIFIERS -a auto-extract only text files in standard VMS text file format -aa extract all files as text -b auto-extract only binary files in VMS fixed 512 bytes records -bb extract all files as binary VMS fixed 512 byte record files -j junk paths (don't recreate archive's directory structure) -n never overwrite existing files; don't prompt -o OK to overwrite files without prompting -q perform operations quietly (-qq => even quieter) -C match filenames case-insensitively -L convert filenames to lowercase if created on MSDOS, VMS, etc. -P supply decryption password on the command line (insecure!) -M page output through built-in "more" function -V retain (VMS) file version numbers -X restore owner/protection info (may require privileges) -: allow "../" path components that traverse across extract dir root Note that uppercase options such as -C, -L, -M, -P, -V, -X and -Z must be specified in quotes. For example: $ unzip "-VX" -a zipfile 2 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.