aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man1/gzip.1
blob: 6ef80732a05e563bc590cfd5d8e2224804f99c76 (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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
.\" %FreeBSD: src/gnu/usr.bin/gzip/gzip.1,v 1.7 1999/09/20 09:15:15 phantom Exp %
.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/gzip.1,v 1.5 2001/07/04 05:31:24 horikawa Exp $
.TH GZIP 1
.SH 名称
gzip, gunzip, zcat \- ファイルの圧縮、伸長を行なう
.SH 書式
.ll +8
.B gzip
.RB [ " \-acdfhlLnNrtvV19 " ]
.RB [ \-S\ suffix ]
[
.I "name \&..."
]
.ll -8
.br
.B gunzip
.RB [ " \-acfhlLnNrtvV " ]
.RB [ \-S\ suffix ]
[
.I "name \&..."
]
.br
.B zcat
.RB [ " \-fhLV " ]
[
.I "name \&..."
]
.SH 解説
.I gzip
は、Lempel-Ziv アルゴリズム (LZ77) を利用してファイルのサイズを減らします。
もし可能な場合は、ファイル名に
.B "\&.gz,"
の拡張子をつけ、
ファイルの所有者やアクセス時間と更新時間を保存します。
(デフォルトの拡張子は、
VMS では
.B "\-gz"
、MSDOS, OS/2 FAT, Windows NT FAT, Atari では
.B "z"
となります。)
もし、ファイル名が指定されなかったり、ファイル名として "-" が指定されれば、
標準入力を圧縮し、結果を標準出力へ出力します。
.I gzip
は、一般ファイルのみを圧縮します。
特に、シンボリックリンクは無視されます。
.PP
もし、圧縮されたファイル名がファイルシステムにとって長ければ、
.I gzip
は、その名前を縮めます。
.I gzip
は、ファイル名の 3 文字以上の部分にのみ名前の縮小を試みます。
(部分とは、ドットによって分けられた所です。) もし、ファイル名が短かい部分のみで
構成されていた時は、最も長い部分を縮小します。例えば、ファイル名が 14 文字
という制限がある時、 gzip.msdos.exe は gzi.msd.exe.gz となります。
ファイル名の文字数が制限を持たないシステムでは、
ファイル名の縮小は行われません。
.PP
デフォルトで
.I gzip
は、オリジナルのファイル名とタイムスタンプを圧縮されたファイル中に保存します。
これらは、
.B \-N
オプション付きで伸長された時に、使われます。これは、圧縮されたファイル名が
縮小されていたり、ファイル転送後にタイムスタンプが保存されなかった時に
便利です。
.PP
圧縮されたファイルは、
.I gzip -d
か
.I gunzip
か
.I zcat
を用い、オリジナルに戻すことが出来ます。
もし、圧縮されたファイルに保存されたオリジナルのファイル名がファイルシステムに
合わなければ、オリジナルのファイル名から新しいファイル名が作られます。
.PP
.I gunzip
は、コマンドライン上のファイルのリストを
受け取り、.gz, -gz, .z, -z, _z, .Z で終っていて、正しいマジックナンバーで
始まっているファイルを、
元の拡張子を取り除いた圧縮されていないファイルにします。
.I gunzip
は、
.B "\&.tar.gz"
や
.B "\&.tar.Z"
を省略した
.B "\&.tgz"
や
.B "\&.taz"
も認識します。
圧縮する時、
.I gzip
は、
.B "\&.tar"
ファイルのファイル名を縮めるかわりに
.B "\&.tgz"
を使います。
.PP
.I gunzip
は、
.I gzip, zip, compress, compress -H, pack
で作られたファイルを伸長できます。
入力されたファイルがどの方式で圧縮されいるかは自動的に判別されます。
最初の二つの方式を使うと、
.I gunzip
は 32ビット CRC をチェックします。
.I pack
の場合、
.I gunzip
は伸長された大きさをチェックします。標準の
.I compress
は一貫性のチェックをするように設計されていませんでしたが、
.I gunzip
は .Z ファイルが正しくないことを検出できることもあります。
もし .Z ファイルを伸長する時にエラーに会う場合には、 標準の
.I uncompress
がエラーを出さないという理由で .Z ファイルは正しい
と思わないで下さい。
これは一般的に、標準の
.I uncompress
が入力をチェックせず、ゴミである出力をしてしまうという事を意味しています。
SCO compress -H 方式 (lzh 圧縮技法) は CRC を含みませんが、
ある程度の一貫性のチェックの余地があります。
.PP
.I zip
で作られたファイルは、 'deflation' 技法で圧縮された一つのメンバーを
もつ時のみ gzip で伸長できます。この特徴は tar.zip ファイルを tar.gz ファイルに
するのを助けることのみを意図しています。複数のメンバーを持った zip ファイルを
取り出す時には
.I gunzip
ではなく
.I unzip
を使って下さい。
.PP
.I zcat
は、
.I gunzip
.B \-c
と同一です。
(いくつかのシステムでは、
.I zcat
は
.I compress
へのオリジナルのリンクを保存しておくために
.I gzcat
としてインストールされているかもしれません。)
.I zcat
は、コマンドラインで指定されたファイルか標準入力からの入力を伸長し、
標準出力へ伸長したデータを出力します。
.I zcat
は、
.B "\&.gz"
拡張子であろうとなかろうと、マジックナンバーが正しければファイルを伸長
します。
.PP
.I gzip
は、
.I zip
や PKZIP で使われている Lempel-Ziv アルゴリズムを使っています。
圧縮率は入力の大きさや共通の文字列の分布によります。
一般に、ソースコードや英語のようなテキストは 60\-70% 縮小されます。
また、
LZW (
.IR compress
で使われている)、
Huffman coding (
.IR pack
で使われている)、
適応性 Huffman coding
.RI ( compact )
よりも圧縮率が良いです。
.PP
圧縮されたファイルがオリジナルのファイルよりわずかでも大きいとしても、
圧縮は常に行われます。最悪の伸長は gzip ファイルヘッダの数バイト、
32K ブロック毎に 5 バイトの増加、すなわち伸長率 0.015% です。
使用しているディスクブロックの実際の数はほとんどの場合決して増加しない事に
注意してください。
.I gzip
は、圧縮や伸長を行う時ファイルのモード、所有者、タイムスタンプを保存します。

.SH オプション
.TP
.B \-a --ascii
行末の変換を行います。このオプションは非 Unix 環境でのみ
サポートされています。例えばMSDOSでは、圧縮時に CR LF が LF に変換され、
伸長時に LF が CR LF に変換されます。
.TP
.B \-c --stdout --to-stdout
オリジナルファイルはそのままで、結果を標準出力へ書き出します。
もし、複数のファイルが入力されれば、結果は一続きの独立したものに
なります。よりよく圧縮をするためには、圧縮をする前にすべての入力
ファイルを結合するとよいです。
.TP
.B \-d --decompress --uncompress
伸長を行います。
.TP
.B \-f --force
ファイルが複数のリンクを持っていたり、すでにファイルは存在してとしても、
また圧縮されたデータを端末から読み書きしようとしたときでも圧縮や伸長を
強行します。もし入力されたデータが
.I gzip
で認識出来ない形式でありオプション --stdout が指定された場合、
変更されることなく入力されたデータは標準出力へコピーされます:
.I zcat
は
.I cat
として振舞います。もし
.B \-f
が指定されておらず
バックグランドで実行されていない場合には、
.I gzip
はファイルを上書きしてよいか確認を求めます。
.TP
.B \-h --help
ヘルプを表示し、終了します。
.TP
.B \-l --list
圧縮されたファイルそれぞれに以下のフィールドを表示する。

    compressed size: 圧縮されたファイルの大きさ
    uncompressed size: 伸長されたファイルの大きさ
    ratio: 圧縮率 (分からなければ 0.0%)
    uncompressed_name: 伸長されたファイルの名前

uncompressed size が -1 ならば、ファイルは gzip 形式ではなく .Z ファイル等です。
そのようなファイルの伸長されたファイルの大きさを
知るには、以下のようにして下さい。

    zcat file.Z | wc -c

--verbose オプションを共に指定すると、以下のフィールドが追加されます。

    method: 圧縮技法
    crc: 伸長されたファイルの 32-bit CRC
    date & time: 伸長されたファイルのタイムスタンプ

圧縮技法は今のところ deflate, compress, lzh (SCO compress -H), pack を
サポートしています。crc が ffffffff ならば、gzip 形式ではありません。

--name オプションを共に指定すると、表示する伸長されたファイルの名前、日付、時間
は圧縮されたファイルに保存されたものになります。

--verbose オプションを共に指定すると、
全てのファイルのサイズのトータルや圧縮率が
表示されます (ファイルサイズが分からないものがある場合を除きます)。
--quiet オプションを共に指定すると、タイトルやトータルラインは表示されません。
.TP
.B \-L --license
.I gzip
ライセンスを表示し、終了します。
.TP
.B \-n --no-name
圧縮する時、デフォルトでオリジナルのファイル名やタイムスタンプを保存しません。
(もしファイル名が縮められるならば、オリジナルのファイル名は常に
保存されます。) 伸長する時、もしオリジナルのファイル名が存在しても
復元しません (圧縮されたファイルの名前から
.I gzip
サフィックスのみを取り除きます)、もしオリジナルのタイムスタンプが
存在しても復元しません (圧縮されたファイルからコピーします)。この
オプションは伸長する時のデフォルトです。
.TP
.B \-N --name
圧縮する時、常にオリジナルのファイル名とタイムスタンプを保存します。
これはデフォルトです。伸長する時、もしオリジナルのファイル名やタイム
スタンプが存在すれば復元します。これはファイル名の長さに制限のある
システムやタイムスタンプがファイル転送後に失われた時に役に立ちます。
.TP
.B \-q --quiet
すべての警告を抑制します。
.TP
.B \-r --recursive
ディレクトリ構造を再帰的に進みます。もし、コマンドラインで指定された
ファイル名のディレクトリがあれば、
.I gzip
はそのディレクトリへ進み、
そのディレクトリで発見した全てのファイルを圧縮します
(
.I gunzip
の場合はそれらを伸長します)。
.TP
.B \-S .suf   --suffix .suf
\&.gz の代わりに .suf というサフィックスを使います。どのようなサフィックス
でも使う事が出来ますが、ファイルを他のシステムに転送する時の混乱を避ける
ために、.z や .gz 以外のサフィックスは避けるべきです。サフィックスに
ヌルを指定すると、
以下のように gunzip はサフィックスにかかわらずすべてのファイルを
伸長しようとします。

    gunzip -S "" *       (MSDOS では *.*)

gzip の以前のバージョンでは .z サフィックスを使っていました。
これは、
.IR pack "(1)"
との衝突を避けるために変更されました。
.TP
.B \-t --test
テスト。圧縮されたファイルが完全なものかチェックします。
.TP
.B \-v --verbose
冗長メッセージを表示します。圧縮/伸長される各ファイル名と圧縮率を
表示します。
.TP
.B \-V --version
バージョンナンバーやオプションを表示した後、終了します。
.TP
.B \-# --fast --best
圧縮の速度を数値
.IR #
で調節します。例えば、
.B \-1
や
.B \-\-fast
は圧縮速度を最も速くし (圧縮率は最低)、
.B \-9
や
.B \-\-best
は圧縮速度を最も遅くします (圧縮率は最高)。
デフォルトの圧縮レベルは
.BR \-6
(つまり 速度より高い圧縮率を重視している)。
.SH 進んだ使用法
複数の圧縮されたファイルは結合する事ができます。この場合、
.I gunzip
は同時にすべてのメンバーを取り出します。例えば、

      gzip -c file1  > foo.gz
      gzip -c file2 >> foo.gz
その後、
      gunzip -c foo

は

      cat file1 file2

と同じ事です。.gz ファイルの一つのメンバーが壊れた場合、他のメンバーは
復元できます (壊れたメンバーを取り除けば)。しかし、
同時にすべてのメンバーを圧縮する時、

      gzip -c file1 file2 > foo.gz

と実行するより、以下のように実行するとより圧縮率を上げる事が出来ます。

      cat file1 file2 | gzip > foo.gz

もし結合されたファイルをより圧縮率を上げるために再圧縮したければ、
以下のように実行して下さい。

      gzip -cd old.gz | gzip > new.gz

もし圧縮されたファイルがいくつかのメンバーを持つのなら、
--list オプションで報告される伸長後の大きさや CRC は最後のメンバーのみを
示しています。すべてのメンバーの伸長後の大きさが必要なら、以下のように
実行して下さい。

      gzip -cd file.gz | wc -c

複数のメンバーを持ち、後からあるメンバーを抜き取る事ができるような
単一のアーカイブファイルを作りたければ、
tar や zip のようなアーカイバーを使って下さい。
GNU tar は gzip を呼び出す -z オプションをサポートしています。
gzip は tar の代替ではなく tar の捕捉として設計されています。
.SH 環境変数
環境変数
.B GZIP
には、
.I gzip
起動時にコマンドラインに付加するオプションを指定できます。
これらのオプションがまず解釈され、コマンドラインのパラメーター
によって上書きされます。例えば、
      sh では:    GZIP="-8v --name"; export GZIP
      csh では:   setenv GZIP "-8v --name"
      MSDOS では: set GZIP=-8v --name

Vax/VMS では、環境変数の名前は GZIP_OPT です。これはプログラムの
始動のためのシンボルセットとの衝突を避けるためです。
.SH 関連項目
znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), compress(1)
.SH 診断
終了コードは通常 0 です; エラーが起こった場合は 1 を返します。
警告が出た時は 2 を返します。
.PP
Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]
.in +8
無効なオプションがコマンドラインに指定されています。
.in -8
.IR file :
not in gzip format
.in +8
.I gunzip
に指定されたファイルは圧縮されていません。
.in -8
.IR file:
Corrupt input. Use zcat to recover some data.
.in +8
圧縮されたファイルが壊れています。壊れている部分までのデータを
以下のようにして復元できます。
.in +8
zcat file > recover
.in -16
.IR file :
compressed with
.I xx
bits, can only handle
.I yy
bits
.in +8
.I file
が、このマシンの伸長プログラムよりも多くの
.I bit
を処理できるプログラムにより (LZW を使い) 圧縮されています。
ファイルを gzip で再圧縮してください。
圧縮率が良くなりメモリ使用量も少なくなります。
.in -8
.IR file :
already has .gz suffix -- no change
.in +8
ファイルが既に圧縮されているかもしれません。ファイルをリネームして
もう一度試してください。
.in -8
.I file
already exists; do you wish to overwrite (y or n)?
.in +8
もし出力ファイルを置き換えたければ、"y" と答えてください。そうでなければ
"n" と答えてください。
.in -8
gunzip: corrupt input
.in +8
SIGSEGV 違反が検出されました。これは通常、入力されたファイルが壊れている事を
意味しています。
.in -8
.I "xx.x%"
.in +8
圧縮で保存された入力の割合
(
.BR \-v
と
.BR \-l
にのみ関係あります)。
.in -8
-- not a regular file or directory: ignored
.in +8
入力ファイルが通常ファイルやディレクトリでない時
(シンボリックリンク、ソケット、FIFO、デバイスファイル)、それらは
変更されません。
.in -8
-- has
.I xx
other links: unchanged
.in +8
入力ファイルがリンクをもっています; 変更されないままです。より詳しい事は
.IR ln "(1)"
を参照して下さい。複数のリンクを持つファイルを圧縮するためには
.B \-f
フラグを使用して下さい。
.in -8
.SH 注意
圧縮されたデータをテープに書く時、一般にブロック境界まで 0 で埋める必要が
あります。データを読み、全ブロックを
.I gunzip
で伸長する時、
.I gunzip
は圧縮されたデータの後にゴミがあると検出し、デフォルトでは警告を出力します。
この警告を抑えるには --quiet オプションを使わなければなりません。
このオプションは、以下のように
.B GZIP
環境変数にセット出来ます。
  sh では:  GZIP="-q"  tar -xfz --block-compress /dev/rst0
  csh では: (setenv GZIP -q; tar -xfz --block-compr /dev/rst0

上記の例では、gzip は GNU tar の -z オプションによって
暗黙的に呼び出されています。
テープで圧縮されたデータを読み書きするのに同じブロックサイズ
(tar の -b オプション) が使われて
いるか確認して下さい。(この例では tar は GNU Version を使っていると
仮定しています。)
.SH バグ
サイズが 2GB を越える場合のオプション --list による出力は、正しくないものです。
圧縮ファイルがシークできない媒体上に存在する場合、
オプション --list による出力は、
サイズを -1 としヘッダ内の CRC を 0xffffffffとします。

まれに、オプション --best を付加して圧縮した場合よりも、デフォルトの圧縮
時 (-6) の方が圧縮率が良いことがあります。ファイルに高い冗長性があれば、
.I compress
の方が
.I gzip
より圧縮率がよいです。