|HP-UX Reference > P
pack(1)HP-UX 11i Version 3: February 2007
pack, pcat, unpack — compress and expand files using Huffman code
pack attempts to store the specified files in a compressed form. Wherever possible, each input file name is replaced by a packed file name.z with the same ownership, modes, and access and modification times. The -f option forces packing of name. This is useful for causing an entire directory to be packed even if some of the files do not benefit. If pack is successful, name is removed. Packed files can be restored to their original form using unpack or pcat.
pack uses Huffman (minimum redundancy) codes on a byte-by-byte basis. If the - argument is used, an internal flag is set that causes the number of times each byte is used, its relative frequency, and the code for the byte to be printed on the standard output. Additional occurrences of - in place of name cause the internal flag to be set and reset.
The amount of compression obtained depends on the size of the input file and the character frequency distribution. Because a decoding tree forms the first part of each .z file, it is usually not worthwhile to pack files smaller than three blocks unless the character frequency distribution is very skewed such as in printer plots or pictures.
Typically, text files are reduced to 60-75% of their original size. Load modules, which use a larger character set and have a more uniform distribution of characters, show little compression, the packed versions being about 90% of the original size.
pack returns a value that is the number of files that it failed to compress.
No packing occurs if:
On short file name systems, the last segment of the file name must contain no more than 12 characters to allow space for the appended .z extension. Directories cannot be compressed.
pcat does for packed files what cat does for ordinary files, except that pcat cannot be used as a filter. The specified files are unpacked and written to the standard output. Thus to view a packed file named name.z use:
To make an unpacked copy (named file) of a packed file named name.z without destroying name.z) use the command:
pcat name >file
pcat returns the number of files it was unable to unpack. Failure may occur if:
unpack expands files created by pack. For each file name specified in the command, a search is made for a file called name.z (or just name if name ends in .z). If this file appears to be a packed file, it is replaced by its expanded version. The new file has the .z suffix stripped from its name, and has the same access modes, access and modification dates, and owner as those of the packed file.
unpack returns a value that is the number of files it was unable to unpack. Failure may occur for the reasons given for pcat, as well as for the following:
Access Control Lists (ACLs)
pack retains all entries in a file's access control list when compressing and expanding it (see acl(5)).
Optional access control list entries of networked files are summarized (as returned in st_mode by stat(), but not copied to the new file (see stat(2)).
This command is likely to be withdrawn from X/Open standards. Applications using this command might not be portable to other vendors' systems. Instead of pack it is recommended that you use the compress utility as it has the following advantages:
zcat is recommended instead of pcat and, uncompress is recommended instead of unpack.