Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
COMPRESS(1)		    General Commands Manual		   COMPRESS(1)

       compress, uncompress, zcat - compress and expand	data

       compress	[ -f ] [ -v ] [	-c ] [ -V ] [ -b bits ]	[ name ...  ]

       uncompress [ -f ] [ -v ]	[ -c ] [ -V ] [	name ...  ]

       zcat [ -V ] [ name ...  ]

       Compress	 reduces the size of the named files using adaptive Lempel-Ziv
       coding.	Whenever possible, each	file is	replaced by one	with  the  ex-
       tension	.Z, while keeping the same ownership modes, access and modifi-
       cation times.  If no files are specified, the standard  input  is  com-
       pressed	to  the	 standard output.  Compressed files can	be restored to
       their original form using uncompress or zcat.

       The -f option will force	compression of name.  This is useful for  com-
       pressing	an entire directory, even if some of the files do not actually
       shrink.	If -f is not given and compress	is run in the foreground,  the
       user is prompted	as to whether an existing file should be overwritten.

       The  -c	option makes compress/uncompress write to the standard output;
       no files	are changed.  The nondestructive behavior of zcat is identical
       to that of uncompress -c.

       Compress	uses the modified Lempel-Ziv algorithm popularized in "A Tech-
       nique for High Performance Data Compression", Terry A. Welch, IEEE Com-
       puter,  vol. 17,	no. 6 (June 1984), pp. 8-19.  Common substrings	in the
       file are	first replaced by 9-bit	codes 257 and up.  When	 code  512  is
       reached,	 the  algorithm	 switches to 10-bit codes and continues	to use
       more bits until the limit specified by the -b flag is reached  (default
       16).  Bits must be between 9 and	16.  The default can be	changed	in the
       source to allow compress	to be run on a smaller machine.

       After the bits limit is attained, compress periodically checks the com-
       pression	ratio.	If it is increasing, compress continues	to use the ex-
       isting code dictionary.	However, if the	compression  ratio  decreases,
       compress	discards the table of substrings and rebuilds it from scratch.
       This allows the algorithm to adapt to the next "block" of the file.

       Note that the -b	flag is	omitted	for uncompress,	since the bits parame-
       ter  specified  during  compression is encoded within the output, along
       with a magic number to ensure that neither decompression	of random data
       nor recompression of compressed data is attempted.

       The  amount  of	compression obtained depends on	the size of the	input,
       the number of bits per code, and	the distribution of common substrings.
       Typically,  text	 such  as source code or English is reduced by 50-60%.
       Compression is generally	much better than that achieved by Huffman cod-
       ing  (as	used in	pack), or adaptive Huffman coding (compact), and takes
       less time to compute.

       Under the -v option, a message is printed yielding  the	percentage  of
       reduction for each file compressed.

       If  the -V option is specified, the current version and compile options
       are printed on stderr.

       Exit status is normally 0; if the last file is larger after (attempted)
       compression, the	status is 2; if	an error occurs, exit status is	1.

       pack(1),	compact(1)

       Usage: compress [-dfvcV]	[-b maxbits] [file ...]
	       Invalid options were specified on the command line.
       Missing maxbits
	       Maxbits must follow -b.
       file: not in compressed format
	       The file	specified to uncompress	has not	been compressed.
       file: compressed	with xx	bits, can only handle yy bits
	       File was	compressed by a	program	that could deal	with more bits
	       than the	compress code on this machine.	 Recompress  the  file
	       with smaller bits.
       file: already has .Z suffix -- no change
	       The  file is assumed to be already compressed.  Rename the file
	       and try again.
       file: filename too long to tack on .Z
	       The file	cannot be compressed because its name is  longer  than
	       12  characters.	 Rename	 and try again.	 This message does not
	       occur on	BSD systems.
       file already exists; do you wish	to overwrite (y	or n)?
	       Respond "y" if you want the output file to be replaced; "n"  if
       uncompress: corrupt input
	       A  SIGSEGV  violation was detected which	usually	means that the
	       input file has been corrupted.
       Compression: xx.xx%
	       Percentage of the input saved by	compression.   (Relevant  only
	       for -v.)
       -- not a	regular	file: unchanged
	       When  the input file is not a regular file, (e.g. a directory),
	       it is left unaltered.
       -- has xx other links: unchanged
	       The input file has links; it is left unchanged.	See ln(1)  for
	       more information.
       -- file unchanged
	       No  savings is achieved by compression.	The input remains vir-


       Although	compressed files are compatible	between	 machines  with	 large
       memory,	-b12  should be	used for file transfer to architectures	with a
       small process data space	(64KB or less, as exhibited by the DEC PDP se-
       ries, the Intel 80286, etc.)



Want to link to this manual page? Use this URL:

home | help