Merge commit 'b31320a79e2054c6739b5229259dbf98f3afc547' into merges
[unleashed.git] / share / man / man1 / pack.1
blob9aa241f7cd632fe08a2d270278cadcc3729005bb
1 '\" te
2 .\" Copyright 1989 AT&T
3 .\" Copyright (c) 1996, Sun Microsystems, Inc. All Rights Reserved
4 .\" Portions Copyright (c) 1992, X/Open Company Limited All Rights Reserved
5 .\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at
6 .\" http://www.opengroup.org/bookstore/.
7 .\" The Institute of Electrical and Electronics Engineers and The Open Group, have given us permission to reprint portions of their documentation. In the following statement, the phrase "this text" refers to portions of the system documentation. Portions of this text are reprinted and reproduced in electronic form in the Sun OS Reference Manual, from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between these versions and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html.
8 .\"  This notice shall appear on any product containing this material.
9 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
10 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
11 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
12 .TH PACK 1 "Mar 13, 2008"
13 .SH NAME
14 pack, pcat, unpack \- compress and expand files
15 .SH SYNOPSIS
16 .LP
17 .nf
18 \fBpack\fR [\fB-f/\fR] [\fB-\fR] \fIfile\fR...
19 .fi
21 .LP
22 .nf
23 \fBpcat\fR \fIfile\fR...
24 .fi
26 .LP
27 .nf
28 \fBunpack\fR [\fB-/\fR] \fIfile\fR...
29 .fi
31 .SH DESCRIPTION
32 .SS "pack"
33 .sp
34 .LP
35 The \fBpack\fR command attempts to store the specified files in a compressed
36 form. Wherever possible (and useful), each input file \fBfile\fR is replaced by
37 a packed file \fBfile\fR\fB\&.z\fR with the same access modes, access and
38 modified dates, and owner as those of \fBfile\fR. If \fBpack\fR is successful,
39 \fBfile\fR is removed.
40 .sp
41 .LP
42 The amount of compression obtained depends on the size of the input file and
43 the character frequency distribution. Because a decoding tree forms the first
44 part of each \fB\&.z\fR file, it is usually not worthwhile to pack files
45 smaller than three blocks, unless the character frequency distribution is very
46 skewed, which can occur with printer plots or pictures.
47 .sp
48 .LP
49 Typically, text files are reduced to 60-75% of their original size. Load
50 modules, which use a larger character set and have a more uniform distribution
51 of characters, show little compression, the packed versions being about 90% of
52 the original size.
53 .sp
54 .LP
55 The \fBpack\fR utility returns a value that is the number of files that it
56 failed to compress. If that number exceeds \fB255\fR, \fB255\fR is returned.
57 .sp
58 .LP
59 No packing occurs if:
60 .RS +4
61 .TP
62 .ie t \(bu
63 .el o
64 the file appears to be already packed
65 .RE
66 .RS +4
67 .TP
68 .ie t \(bu
69 .el o
70 the file name is too long to add the \fB\&.z\fR suffix
71 .RE
72 .RS +4
73 .TP
74 .ie t \(bu
75 .el o
76 the file has links
77 .RE
78 .RS +4
79 .TP
80 .ie t \(bu
81 .el o
82 the file is a directory
83 .RE
84 .RS +4
85 .TP
86 .ie t \(bu
87 .el o
88 the file cannot be opened
89 .RE
90 .RS +4
91 .TP
92 .ie t \(bu
93 .el o
94 the file is empty
95 .RE
96 .RS +4
97 .TP
98 .ie t \(bu
99 .el o
100 no disk storage blocks are saved by packing
102 .RS +4
104 .ie t \(bu
105 .el o
106 a file called \fBfile\fR\fB\&.z\fR already exists
108 .RS +4
110 .ie t \(bu
111 .el o
112 the \fB\&.z\fR file cannot be created
114 .RS +4
116 .ie t \(bu
117 .el o
118 an I/O error occurred during processing.
122 The last segment of the file name must be short enough to allow space for the
123 appended \fB\&.z\fRextension. Directories cannot be compressed.
124 .SS "pcat"
127 The \fBpcat\fR command does for packed files what \fBcat\fR(1) does for
128 ordinary files, except that \fBpcat\fR cannot be used as a filter. The
129 specified files are unpacked and written to the standard output.
132 \fBpcat\fR returns the number of files it was unable to unpack. Failure can
133 occur if:
134 .RS +4
136 .ie t \(bu
137 .el o
138 the file cannot be opened;
140 .RS +4
142 .ie t \(bu
143 .el o
144 the file does not appear to be the output of \fBpack\fR.
146 .SS "unpack"
149 The \fBunpack\fR command expands files created by \fBpack\fR. For each
150 \fBfile\fR specified in the command, a search is made for a file called
151 \fBfile\fR\fB\&.z\fR (or just \fBfile\fR, if \fBfile\fR ends in \fB\&.z\fR). If
152 this file appears to be a packed file, it is replaced by its expanded version.
153 The new file has the \fB\&.z\fR suffix stripped from its name, and has the same
154 access modes, access and modification dates, and owner as those of the packed
155 file.
158 \fBunpack\fR returns a value that is the number of files it was unable to
159 unpack. Failure can occur for the same reasons that it can in \fBpcat\fR, as
160 well as for the following:
161 .RS +4
163 .ie t \(bu
164 .el o
165 a file with the unpacked name already exists;
167 .RS +4
169 .ie t \(bu
170 .el o
171 the unpacked file cannot be created.
173 .SH OPTIONS
176 The following options are supported by \fBpack\fR:
178 .ne 2
180 \fB\fB-f\fR\fR
182 .RS 6n
183 Forces packing of \fBfile\fR. This is useful for causing an entire directory to
184 be packed even if some of the files do not benefit. Packed files can be
185 restored to their original form using \fBunpack\fR or \fBpcat\fR.
190 The following options are supported by \fBpack\fR and \fBunpack\fR:
192 .ne 2
194 \fB\fB-/\fR\fR
196 .RS 6n
197 When packing or unpacking, copies any ACL and extended system attributes
198 associated with the source file to the target file. If an ACL or extended
199 system attributes cannot be copied, the original file is retained, a diagnostic
200 message is written to \fBstderr\fR, and the final exit status is
201 \fBnon-zero\fR.
204 .SH OPERANDS
207 The following operands are supported:
209 .ne 2
211 \fB\fBfile\fR\fR
213 .RS 8n
214 A path name of a file to be packed, unpacked, or pcated; \fBfile\fR can include
215 or omit the \fB\&.z\fR suffix.
219 .ne 2
221 \fB\fB\(mi\fR\fR
223 .RS 8n
224 \fBpack\fR uses Huffman (minimum redundancy) codes on a byte-by-byte basis. If
225 the \fB\(mi\fR argument is used, an internal flag is set that causes the number
226 of times each byte is used, its relative frequency, and the code for the byte
227 to be printed on the standard output. Additional occurrences of \fB\(mi\fR in
228 place of \fBfile\fR causes the internal flag to be set and reset.
231 .SH USAGE
234 See \fBlargefile\fR(5) for the description of the behavior of \fBpack\fR,
235 \fBpcat\fR, and \fBunpack\fR when encountering files greater than or equal to 2
236 Gbyte ( 2^31 bytes).
237 .SH EXAMPLES
239 \fBExample 1 \fRViewing a Packed File
242 To view a packed file named \fBfile.z\fR use:
246 \fBexample%\fR \fBpcat\fR \fBfile.z\fR
250 or just:
254 \fBexample%\fR \fBpcat\fR \fBfile\fR
257 \fBExample 2 \fRMaking and Unpacked Copy:
260 To make an unpacked copy, say \fBnnn\fR, of a packed file named \fBfile.z\fR
261 (without destroying \fBfile.z\fR) use the command:
265 \fBexample%\fR \fBpcat\fR \fBfile\fR \fB>nnn\fR
267 .SH ENVIRONMENT VARIABLES
270 See \fBenviron\fR(5) for descriptions of the following environment variables
271 that affect the execution of \fBpack\fR, \fBpcat\fR, and \fBunpack\fR:
272 \fBLC_CTYPE\fR, \fBLC_MESSAGES\fR, and \fBNLSPATH\fR.
273 .SH EXIT STATUS
276 The following exit values are returned:
278 .ne 2
280 \fB\fB0\fR\fR
282 .RS 6n
283 Successful completion.
287 .ne 2
289 \fB\fB>0\fR\fR
291 .RS 6n
292 An error occurred. The number of files the command failed to pack/unpack is
293 returned. If the number of failures exceeds \fB255\fR, then \fB255\fR is
294 returned.
297 .SH ATTRIBUTES
300 See \fBattributes\fR(5) for descriptions of the following attributes:
305 box;
306 c | c
307 l | l .
308 ATTRIBUTE TYPE  ATTRIBUTE VALUE
310 CSI     Enabled
313 .SH SEE ALSO
316 \fBcat\fR(1), \fBcompress\fR(1), \fBzcat\fR(1), \fBfgetattr\fR(3C),
317 \fBfsetattr\fR(3C)\fBattributes\fR(5), \fBenviron\fR(5), \fBlargefile\fR(5)