aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man1/compress.1
blob: 2a4ec3026f9d6816d495db928afa335a107793fe (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
.\" Copyright (c) 1986, 1990, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" James A. Woods, derived from original work by Spencer Thomas
.\" and Joseph Orost.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)compress.1	8.2 (Berkeley) 4/18/94
.\" jpman %Id: compress.1,v 1.2 1997/04/03 02:01:53 mutoh Stab %
.\"
.Dd April 18, 1994
.Dt COMPRESS 1
.Os BSD 4.3
.Sh 名称
.Nm compress ,
.Nm uncompress ,
.Nm zcat
.Nd データを圧縮、展開する
.Sh 書式
.Nm compress
.Op Fl cfv
.Op Fl b Ar bits
.Op Ar
.Nm uncompress
.Op Fl cfv
.Op Ar 
.Nm zcat
.Op Ar
.Sh 解説
.Nm compress
は adaptive Lempel-Ziv 法を用いて、ファイルを圧縮します。
個々の圧縮された
.Ar file
は、元のファイル名に拡張子
.Dq .Z
を付加したものにリネームされます。そして、ファイルの更新時刻、
最終アクセス時刻、ファイルフラグ、モード、ユーザID、グループID の大半
は、パーミッションの許す範囲で圧縮ファイルに引き継がれます。
もし圧縮しても
.Ar file
のサイズが小さくならない場合、compress はそのファイルを無視します。
.Pp
.Nm uncompress
は、compress されたファイルを元通りのファイルにリストアし、
ファイル名を拡張子
.Dq .Z
を除いたものにリネームします。
.Pp
.Nm zcat
は
.Dq "uncompress -c"
の別名です。
.Pp
compress, uncompress によってリネームされるファイルの名前がすでに存在
し、標準入力が端末の場合は、上書きしてもよいか確認を求めるプロンプトが 
(標準エラー出力に) 出力されます。
プロンプトが出せなかったり、確認の回答が得られなかった場合には、
ファイルは上書きされません。
.Pp
ファイル名が指定されなかった場合、標準入力からのデータが圧縮もしくは
展開され、結果が標準出力に出力されます。
入力および出力ファイルが通常ファイルでない場合、圧縮後のサイズの
チェックとファイルの上書きチェックは行なわれません。
入力ファイルは削除されず、また入力ファイルの属性は引き継がれません。
.Pp
オプションは以下のものがあります:
.Bl -tag -width Ds
.It Fl b
.Ar bits
コードの上限値を指定します(以下を参照)。
.It Fl c
compressed または uncompressed の出力を標準出力に出します。
入力元のファイルは参照されるのみで変更されません。
.It Fl f
ファイル長が小さくなるならないにかかわらず、ファイルの圧縮を強行
します。また、圧縮ファイルと同名のファイルがすでに存在しても、確認を
求めることなく強制的にファイルの上書きを行ないます。
.It Fl v
圧縮後、ファイルサイズがどれだけ減ったかをパーセント表示します。
.El
.Pp
.Nm compress
は Lempel-Ziv修正アルゴリズムを使用します。
ファイル内の重複する部分文字列は、まず、257 以上の 9ビットコードに
置き換えられます。コードが 512 に達すると、アルゴリズムは
10ビットコードへ切り替えられ、
.Fl b
フラグによって指定された上限(デフォルトは16)に達するまで、更に上の
ビットを使っていきます。
.Ar Bits
は、9 から 16 の範囲になければなりません。
.Pp
.Ar bits
の上限に達すると、
.Nm compress
は圧縮率を定期的にチェックします。
圧縮率が上がっているとき、
.Nm compress
は既存のコード辞書を使い続けますが、
圧縮率が下がったときは
.Nm compress
は、部分文字列のテーブルを破棄し、最初からテーブルを作り直します。
こうして、アルゴリズムをファイルの次の "block" へ適用していくことが
できます。
.Pp
ランダムデータの展開または圧縮されたデータの再圧縮を行わないように
するためのマジックナンバと共に、圧縮の際に指定された
.Ar bits
パラメータがエンコードされ、圧縮ファイルの中に保存されるため、
.Nm uncompress
では
.Fl b
フラグが省略されています。
.Pp
.ne 8
得られる圧縮の量は、入力サイズ、コードあたりの
.Ar bits
の数, および重複する部分文字列の分布に依存しています。
普通、ソースコードや英語のテキストは、50\-60% 圧縮されます。
一般的に (packコマンドで使われている) Huffman法、または
(compactコマンドで使われている)最適化Huffman法よって得られるより、圧縮
は良く、計算時間もかかりません。
.Pp
.Nm compress
ユーティリティは正常終了時には 0 を、エラー終了時には 0 より大きい値を
返します。
.Sh 関連項目
.Rs
.%A Welch, Terry A.
.%D June, 1984
.%T "A Technique for High Performance Data Compression"
.%J "IEEE Computer"
.%V 17:6
.%P pp. 8-19
.Re
.Sh 歴史
.Nm
コマンドは 
.Bx 4.3
から登場しました。