Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

gunzip

圧縮ファイルを伸張(解凍)する
2015/05/20 08:00

対応OS: linux , freebsd, solaris
gunzip [-c] [-f] [-l] [-r] [-v] [FILE...]

 gunzipコマンドは、gzip形式とcompress形式の圧縮ファイルを解凍します。

 gzip形式の圧縮ファイルは、通常、拡張子として「.gz」が付きますが、gunzipコマンドは解凍時に、この拡張子をファイル名から取り除きます。また、compress形式の圧縮ファイルは通常、拡張子として「.Z」が付きますが、この拡張子も同様に解凍時に取り除きます。その他にも識別する拡張子がいくつかあるので、下にそれをまとめます。

圧縮ファイルの拡張子
拡張子内容
.gzgzip形式圧縮ファイルであることを示すv
-gzgunzipコマンドは、解凍時にこの拡張子をファイル名から取り除く
.zcompress形式の圧縮ファイルであることを示す
-zgunzipコマンドは、解凍時にこの拡張子をファイル名から取り除く
_z 
.Z 
.tgz「.tar.gz」を簡略化したもの
 「tar.gz」は、tarコマンドでアーカイブしたファイルを、gzipコマンドによって圧縮したものを示す
.taz「.tar.Z」を簡略化したもの
 「.tar.Z」は、tarコマンドでアーカイブしたファイルを、compressコマンドによって圧縮したものを示す
gzip形式とcompress形式

 gzip形式は、gzipコマンドで圧縮されたファイルのファイル形式で、compress形式はcompressコマンドによって圧縮されたファイルのファイル形式ですが、現在はgzip形式が主流となっています

HINT!

 tarコマンド・gzipコマンド・アーカイブ

 compressコマンドについては本書では解説していませんが、gzipコマンドと同様にデータの圧縮を行うコマンドです

オプション
① -c
解凍した場合の結果をファイルではなく標準出力に表示します。
② -f
解凍後のファイル名と同一名のファイルが既に存在する場合に、上書きの確認を省略して無条件で上書きします。このオプションを省略した場合は、上書きするかどうかの問い合わせが行われます。
③ -l
gzip形式の圧縮ファイルの情報を表示します。表示する情報の内容は以下のとおりです。
・compressed : 圧縮ファイルのファイルサイズ
・ratio : 圧縮率
・uncompressed : 解凍後のファイルサイズ
・uncompressed_name : 解凍後のファイル名
注意

 compress形式で圧縮されたファイルをFILE...に指定して、オプション「-l」を使用すると、「uncompressed size」が「-1」となり、「ratio」が「0.0%」となります

④ -r
FILE...にディレクトリを指定した場合、そのディレクトリ内の、gzip形式で圧縮されたファイルまたはcompress形式で圧縮されたファイルを、すべて解凍します。
⑤ -v
解凍すると同時に、FILE...に指定したファイルの圧縮率と解凍後のファイル名を標準出力に表示します。
引数
① FILE...
解凍する圧縮ファイル名を指定します。複数指定する場合は、スペースで区切って指定します。ファイル名は、[圧縮ファイルの拡張子[#2803-02]]にある拡張子を省略して指定することもできます。また、ワイルドカードを使用することもできます。FILE...を省略した場合は標準入力からの入力となります。
圧縮ファイルの内容を表示する
[takeda]$ gunzip -c doc.txt.gz 
圧縮ファイル「doc.txt.gz」の内容を表示

圧縮されたファイルを解凍して標準出力へ表示する

[takeda]$ ls
doc.txt.gz
圧縮ファイル自体に変化はない(解凍後のファイルは作成されない)
[takeda]$
解凍後のファイルの上書き確認を省略する
[takeda]$ ls 
doc.txt doc.txt.gz
圧縮ファイル「doc.txt.gz」の解凍時に作成される「doc.txt」と同名ファイルが存在
[takeda]$ gunzip doc.txt.gz
gunzip: doc.txt already exists; do you wish to overwrite (y or n)? n
not overwritten
通常は上書き確認される
「y」を入力すると上書きし、「n」を入力すると処理を行わない
[takeda]$ ls
doc.txt doc.txt.gz
[takeda]$ gunzip -f doc.txt.gz
オプション「-f」を指定すると、上書き確認なしに無条件で上書き
[takeda]$ ls
doc.txt
[takeda]$
圧縮ファイルの情報を表示する
[takeda]$ ls 
a.tar.Z b.tar.gz
[takeda]$ gunzip -l *
compressed uncompressed ratio uncompressed_name
381 -1 0.0% a.tar
213 10240 98.2% b.tar
compress形式では、「uncompressed」が「-1」、「ratio」が「0.0%」と表示される
gzip形式では、すべての情報を表示
[takeda]$
解凍と同時に情報を表示する
[takeda]$ ls 
dir03.tar.gz
[takeda]$ gunzip -v dir03.tar.gz
dir03.tar.gz: 97.9% -- replaced with dir03.tar
オプション「-v」を指定して、圧縮率と解凍後のファイル名を表示
[takeda]$ ls
dir03.tar
解凍も同時に完了している
[takeda]$
ディレクトリ配下の圧縮ファイルをまとめて解凍する
[takeda]$ tree dir02 
dir02
|-- dir01
| |-- file11.tar.gz
| `-- file22.tar.Z
|-- file11.tar.gz
`-- file22.tar.Z

1 directory, 4 files
ディレクトリ「dir02」には4つの圧縮ファイルが存在
[takeda]$ gunzip -r dir02
[takeda]$ tree dir02
dir02
|-- dir01
| |-- file11.tar
| `-- file22.tar
|-- file11.tar
`-- file22.tar

1 directory, 4 files
ディレクトリ「dir02」内のすべての圧縮ファイルが解凍された
[takeda]$
HINT!

 lsコマンド

関連タグ

UNIXコマンド辞典トップページに戻る

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5