【Linux】ファイルの圧縮と解凍

 大きなサイズのファイルを圧縮して、サイズを小さくすることは、バックアップをとったり、ネットワークでファイルを送信する際に効果的です。圧縮したファイルは、元に戻す必要があります。ここでは、ファイルの圧縮と解凍について解説していきます。

ファイルの圧縮

 ファイルの圧縮とは、データの容量を小さくする技術です。これにより、ディスクの保存容量を節約し、データ転送速度を向上させることができます。圧縮は、冗長なデータを効率的に表現するアルゴリズムを使用して行われます。Linuxでは、以下のようなツールが一般的に使われます。

  • gzip: 高速な圧縮・解凍速度。拡張子は.gz
  • bzip2: 高い圧縮率を持つが、速度は中程度。拡張子は.bz2
  • xz: 非常に高い圧縮率だが、速度は遅い。拡張子は.xz

ファイルの解凍

 解凍とは、圧縮されたデータを元の状態に戻すプロセスです。圧縮アルゴリズムで使用された手順に従って、圧縮時に失われた冗長データを再現します。解凍には、圧縮時に使用したツールの対応コマンドを使用します。

  • gunzip: gzipで圧縮されたファイルを解凍
  • bunzip2: bzip2で圧縮されたファイルを解凍
  • unxz: xzで圧縮されたファイルを解凍

Linuxでのファイル圧縮と解凍の一般的なツール

gzip/gunzip

 gzipは、GNU圧縮プログラムです。LZ77アルゴリズムを使用し、比較的高速な圧縮と解凍を提供します。

gzip file.txt  # file.txt.gzに圧縮
gunzip file.txt.gz  # 元のfile.txtに解凍

bzip2/bunzip2

 bzip2は、Burrows-Wheeler変換とHuffman符号化を使用した圧縮ツールです。gzipよりも高い圧縮率を提供しますが、速度は遅くなります。

bzip2 file.txt  # file.txt.bz2に圧縮
bunzip2 file.txt.bz2  # 元のfile.txtに解凍

xz/unxz

 xzは、LZMA2アルゴリズムを使用した圧縮ツールで、非常に高い圧縮率を提供します。特に大きなファイルの圧縮に適していますが、速度は最も遅いです。

xz file.txt  # file.txt.xzに圧縮
unxz file.txt.xz  # 元のfile.txtに解凍

圧縮方式の比較

圧縮方式使用コマンド解凍コマンドファイル拡張子圧縮率圧縮速度解凍速度備考
gzipgzipgunzip.gz中程度速い速い一般的に使用される
bzip2bzip2bunzip2.bz2高い遅い遅い圧縮率が高い
xzxzunxz.xz非常に高い非常に遅い非常に遅い大きなファイル向け
圧縮方式の比較

圧縮方式の選択

圧縮方式を選択する際は、以下の点を考慮します。

  • 速度:高速な圧縮・解凍が必要なら、gzipが適しています。
  • 圧縮率:高い圧縮率が必要なら、bzip2やxzが適しています。
  • ファイルサイズ:非常に大きなファイルを扱う場合は、xzが適しています。

まとめ

 これらのコマンドを使用することで、ファイルのサイズを効果的に減らすことができます。それぞれの方式には一長一短があり、用途に応じて適切な方式を選ぶことが重要です。