Topics on this page:
The freeware Zip and Unzip programs are based on Phil Katz's published compression techniques. These techniques draw on the work of Phil Katz and others to produce efficient and robust compression. The freeware Zip and Unzip programs are entirely compatible with PKZip and PKUnzip.
The freeware Zip and Unzip programs are available for many operating systems, including (but not limited to) DOS (MS-DOS, DR-DOS, etc.), Windows, UN*X and OpenVMS.
Since operating systems differ, the function of these programs differs slightly on each operating system. On this web page, we'll discuss the peculiarities of Zip and Unzip for OpenVMS.
Zip V2.1 and later and Unzip V5.2 and later on OpenVMS provide a familiar DCL-like command line interface. Options for Zip and Unzip are expressed in the form of "qualifiers" (or "switches") which are delimited by a slash ("/") and may accept one or more qualifier values.
To view the command line qualifiers available for Zip or Unzip, simply invoke the program with no parameters, or specify the /HELP qualifier. For example:
$ ZIP
or
$ ZIP/HELP
$ UNZIP
or
$ UNZIP/HELP
Both Zip and Unzip provide support for RMS, and both will preserve RMS file attributes. The "trick" (so to speak) is to use the correct Zip options so that Unzip has everything it needs to restore the file(s) in the archive to the original state.
For Zip V2.1 and later, use the following command line options to preserve RMS attributes:
$ ZIP/VMS
For Zip V2.0, use use the following command line options to preserve RMS attributes (the quotes are REQUIRED!):
$ ZIP "-V"
Both Zip and Unzip provide support for ODS-2, and both will preserve ODS-2 file version numbers. Again, the "trick" (so to speak) is to use the correct Zip options so that Unzip has everything it needs to restore the file(s) in the archive to the original state.
For Zip V2.1 and later, use the following command line options to preserve RMS attributes and ODS-2 version numbers:
$ ZIP/VMS/KEEP_VERSION
For Zip V2.0, use use the following command line options to preserve RMS attributes and ODS-2 version numbers (the quotes are REQUIRED!):
$ ZIP "-Vw"
Zip and Unzip and Directory Trees
For both Zip and Unzip, the default behavior is to preserve directory structures when archiving a directory "tree" and all the files it contains. For example:
$ ZIP/VMS/KEEP ALLFILES [...]*.*;*
This example will archive all versions of all the files in the current directory and any directories under the current directory. It will store them in an archive named ALLFILES.ZIP. The paths will be preserved in the archive along with the files found along those paths.
For PKZip, however, the default is NOT to preserve paths and directory structures. So, this differs from the default behavior of freeware Zip for OpenVMS. To prevent path information from being included in the archive, use the /JUNK qualifier of Zip (junk the path information).
When Unzip-ping the archive from the previous example (ALLFILES.ZIP), the default behavior of Unzip is to restore the paths and directory structure using the information stored in the archive. For example:
$ UNZIP/VERSION ALLFILES
This example will restore the files in the archive to the current directory, and will create subdirectories as needed to restore the original structures.
For PKUnzip, however, the default is NOT to preserve the paths and directory structure as stored in the archive. So, this differs from the default behavior of freeware Unzip for OpenVMS. To prevent the paths from being restored, use the /JUNK qualifier of Unzip (junk the path information).
The default compression level for Zip is the same as that for PKZip: "DeflateN" or "normal" compression. You can do better than this by using the "/LEVEL" qualifier.
For Zip V2.1 and later, use the following command line options to produce the best compression, and to preserve RMS attributes and ODS-2 version numbers:
$ ZIP/LEVEL=9/VMS/KEEP_VERSION
For Zip V2.0, use use the following command line options to produce the best compression, and to preserve RMS attributes and ODS-2 version numbers (the quotes are REQUIRED!):
$ ZIP "-9Vw"
Using File Lists with Zip for OpenVMS
Zip will accept a list of files to be archived. This allows for selecting files from directories where the resulting command line would be too long for DCL.
For Zip V2.1 and later, use the following command line options to archive files in a list, to produce the best compression, and to preserve RMS attributes and ODS-2 version numbers:
$ ZIP/LEVEL=9/VMS/KEEP_VERSION/BATCH=file_list archive_name
For Zip V2.0, use use the following command line options to archive files in a list, to produce the best compression, and to preserve RMS attributes and ODS-2 version numbers (the quotes are REQUIRED!):
$ ZIP "-9Vw" archive_name -@file_list
File lists can be produced using the DIRECTORY command with the /NOHEADER and /NOTRAILER qualifiers combined with such qualifiers as /SINCE, /SELECT and others. Note that if you normally have a symbol set up for DIR[ECTORY] which includes other qualifiers such as /SIZE, /DATE, /SECURITY etc., you must either delete the symbol or negate those qualifiers.
Another possible source of file lists is the SEARCH command when used with the /WINDOW=0 and /OUTPUT qualifiers.
Transferring Compressed Archives Between Systems
Compressed archives of ALL kinds (not just .ZIP archives) should be transferred as BINARY files.
On OpenVMS, .ZIP archives normally appear as sequential files with fixed-length (512 bytes) records. This is how they should appear both before and after being transferred. The only known way to ensure this is to transfer them as BINARY files.
OpenVMS Page
OpenVMS Hobbyist Page
OpenVMS Freeware Page
ZIP and UNZIP
for OpenVMS
The REAL Story about "tarballs"
(GZIP and TAR for OpenVMS)
VAX Linux
"Vaporware"
FreeVMS Page Bulletin
Board Contact Us About
Us
"DJE Systems" is a service mark of David
J. Dachtera, doing business as DJE Systems.
This page Copyright ©1998, 1999 by David J. Dachtera, All Rights Reserved.