■gzipコマンド/gunzipコマンドとは?
gzipはファイルを圧縮するコマンド、gunzipは圧縮ファイルを元に戻すコマンド
複数のファイルをまとめるという“アーカイブ機能”はなく、1つ1つのファイルに対して機能する。
〇gzipコマンド/gunzipコマンドの書式
gzip [オプション] ファイル
gunzip [オプション] ファイル
〇gzipコマンド/gunzipコマンドの主なオプション
「短いオプション/長いオプション
…意味」
-1~-9
…圧縮レベル(「-1」が低圧縮率で高速、「-9」は高圧縮率だが低速)
-c / –stdout,–to-stdout
…結果をファイルではなく標準出力へ出力する(主にパイプで別コマンドに渡す際に使用)
-d / –decompress,–uncompress
…伸張を行う(gunzipのデフォルト)
-f / –force
…ファイルを上書きする
-k / –keep
…圧縮前/伸張前のファイルを残す
-l –list
…圧縮率と圧縮前のファイルサイズを表示する(圧縮ファイルに対して使用)
-N / –name
…ファイル名とタイムスタンプを保持する
-n / –no-name
…ファイル名とタイムスタンプを保持しない
-q / –quiet
…エラーメッセージなどを表示しない
-r / –recursive
…ディレクトリを再帰的に処理する
-S 拡張子 / –suffix 拡張子
…圧縮ファイルの拡張子を指定する(無指定時は「.gz」)
-t / –test
…圧縮ファイルをテストする
-v / –verbose
…処理内容を表示する
■ファイルを圧縮する/伸張する
複数のファイルをまとめることを「アーカイブ」、アーカイブからファイルを取り出すことを「展開」、
ファイルサイズを小さくすることを「圧縮」、圧縮されたファイルを元に戻すことを「伸張」と呼ぶ。
「zip」コマンドはアーカイブと圧縮を同時に行うのに対し、gzipコマンドは「圧縮」のみ、
gunzipコマンドは「伸張」のみを行う。
ちなみに、アーカイブには「tar」コマンドを使用する。
gzipコマンドで圧縮されたファイルには、元のファイル名に拡張子「.gz」が追加される。
圧縮と同時に元のファイルは削除されるので、
例えば「gzip list1.txt」は「list1.txt」を「list1.txt.gz」に変換する、という動作になる。
逆に、gunzipコマンドで圧縮ファイル(.gz)を伸張した場合は、元の圧縮ファイルが削除される。
つまり、「gunzip list1.txt.gz」は「list1.txt.gz」を「list1.txt」に変換する、という動作になる。
コマンド実行例
gzip list1.txt
(「list1.txt」を圧縮して「list1.txt.gz」にする)
gunzip list1.txt.gz
(「list1.txt.gz」を伸張して「memo.txt」にする)
■zcatコマンドとは?
zcatコマンドは、指定したgzip形式またはcompress形式の圧縮ファイルの内容を表示する。
〇zcatコマンドの書式
zcat [オプション] ファイル
〇オプション -f
指定したファイルがgzip形式の圧縮ファイルでもcompress形式の圧縮ファイルでもない場合に、
catコマンドのようにファイルの内容を表示する。
このオプションを指定しなかった場合、指定したファイルがgzip形式の圧縮ファイルでも
compress形式の圧縮ファイルでもない場合に、エラーが発生する。
〇引数 ファイル
内容を表示する圧縮ファイルの名前を指定する。
zcatコマンドは、拡張子ではなく圧縮ファイルの構造を解析し、gzip形式または
compress形式のファイルの場合に、内容を表示する。
・gzip形式またはcompress形式の圧縮ファイルかどうかを判定する
$ zcat file01.txt
zcat: file01.txt: not in gzip format
gzip形式の圧縮ファイルでもcompress形式の圧縮ファイルでもない場合には、エラーが発生
エラーが発生すると、それらの圧縮ファイルでないと判定できる
・ファイルの内容を表示する
$ zcat -f file01.txt
オプション「-f」を付けると、gzip形式やcompress形式の圧縮ファイルでない場合に、
ファイルの中身を表示
「file01.txt」の中身が表示される。
・圧縮ファイルの内容を表示する
$ gzip file01.txt
$ ls
file01.txt.gz
$ zcat file01.txt.gz
「file01.txt.gz」を解凍した際に得られる「file01.txt」の中身が表示される。