ファイルの圧縮・伸張方法
ファイルの圧縮・伸張には各種のアルゴリズムがあり,Linuxでも複数の方式が使われています。ここでは,主要なファイル圧縮・伸張用のコマンドの使い方を紹介します。
●tar形式
tar*8は,複数のファイルをまとめて1つのアーカイブ(書庫)・ファイルに格納,あるいはアーカイブ・ファイルから元のファイルを抽出するためのコマンドです。
UNIXに実装された段階では圧縮・伸張の機能は含まれていませんでした。つまり,複数のファイルを1つにまとめたり,それを展開する機能だけを備えていました。GNUプロジェクトが配布するtarコマンド(すなわちLinuxのtarコマンドです)には圧縮・伸張の機能もあります。
アーカイブ・ファイルの拡張子は「.tar」となります。例えば,カレント・ディレクトリ以下のすべてのファイルをアーカイブ・ファイル/tmp/samle.tarに格納するには,
と入力します*9。アーカイブ・ファイル/tmp/sample.tarに格納されているファイル一覧を表示するには,
と入力します。アーカイブ・ファイル/tmp/sample.tarに格納されているファイルをすべて抽出するには,
と入力します。ファイル名を指定して抽出することもできます。例えば,sample.textを抽出したい場合には,
と入力します。
●gzip形式
gzip形式では,Lempel-Zivコーディング(LZ77)を用いてファイルを圧縮します。UNIXで古くから利用されていたcompress(Z形式)コマンドをGNUが代替する目的で配布しています。gzip形式はZ形式よりも圧縮率が高いことから幅広く利用されています。
圧縮コマンド名はgzipです。伸張コマンド名はgunzipですが,実体はgzipコマンドです。gzip形式はtarコマンドのオプションとしても利用可能で,「z」オプションで指定します。拡張子は「.gz」になります。従って,tar形式のアーカイブ・ファイルsample.tarをgzip形式で圧縮すると,ファイル名はsample.tar.gzとなります。拡張子が複数あるのはまぎらわしいので,sample.taz,あるいはsample.tgzというファイル名にすることもあります。
例えば,sample.textをgzip形式で圧縮するには,
と入力します。すると,gzip形式のファイルsample.text.gzが作成されます*10。
この圧縮ファイルを伸張したい場合には,
と入力します。すると,元のファイルsample.textが復元されます*11。
tar.gz形式の圧縮されたアーカイブ・ファイルを伸張して展開するときには,
と入力すれば,一気にファイルを取り出せます。
圧縮したファイルの内容がテキスト形式の場合には,ファイルはgzip形式のままで伸張した内容を標準出力に出力するzcatコマンドもあります。
写真2 gzipコマンドの例 オンライン・ヘルプ・ファイル/usr/share/man/man1/gzip1.gzの情報を表示しています。61.5%の圧縮率であることが分かります。 [画像のクリックで拡大表示] |
圧縮ファイルの情報を表示したい場合には,-lオプションを付加します。すると,元のファイル・サイズと圧縮後のサイズ,圧縮率が表示されます。例えば,gzipコマンドのオンライン・ヘルプ・ファイル/usr/share/man/man1/gzip1.gzの情報を表示してみます(写真2)。圧縮前(すなわちオリジナル)のファイル・サイズは15.5Kバイトですが,圧縮後は6Kバイトとなっており,61.5%の圧縮率であることが分かります。