Linuxコマンドで使える圧縮形式ファイル

📖 この記事は約 9 分で読めます。
Linux圧縮形式ファイル解説
概要

Linuxでファイルを圧縮するときに使える主な圧縮形式(zip・gzip・bzip2・xz・zstd)の違いと、tar・gzip・zipコマンドの使い方を、GNU tarなどの公式マニュアルをもとにコマンド例つきで紹介します。

本記事の読者層
  • Linuxでファイルを圧縮するコマンドと、圧縮形式の違いを知りたい方
  • ディレクトリごと tar.gz や zip にまとめる方法を知りたい方
  • tar.gz などの圧縮ファイルを展開する方法を確認したい方

Linuxでファイルを圧縮するときは、複数のファイルやディレクトリをまとめるならtarに圧縮オプションを付けた.tar.gz、WindowsやmacOSの相手に渡すならzipが定番です。1つのファイルだけを圧縮するならgzipでも足ります。この記事では、どのコマンドをどう使い分けるかを、圧縮形式の違いとコマンド例で説明します。

目次

Linuxのファイル圧縮で使われる主な圧縮形式

ポイント

「圧縮形式」は、データを圧縮するための様々な方法やフォーマットを指す言葉です。以下はいくつかの主な圧縮形式の例です:

  • ZIP形式: ファイルやフォルダを圧縮するための一般的な形式で、Windowsや多くの他のプラットフォームでサポートされています。
  • RAR形式: 圧縮とファイル分割のための形式で、WinRARなどのソフトウェアで使用されています。
  • 7z形式: 7-Zipなどのソフトウェアで利用される形式で、高い圧縮率を提供することが特徴です。
  • GZIP形式: UnixやLinuxシステムでよく使われ、単一のファイルを圧縮します。通常、拡張子は.gzです。
  • TAR形式: ファイルやディレクトリを単一のアーカイブにまとめ、圧縮しない形式です。通常、GZIPやBZIP2と組み合わせて使われます。
  • BZIP2形式: GZIPと同様にファイルを圧縮するが、通常、より高い圧縮率を提供します。

これらの圧縮形式は、ファイルサイズを減らし、データを効率的に転送・保存するために使用されます。どの形式を選択するかは、使用するソフトウェアやユースケースによって異なります。

Linuxコマンドで使える圧縮形式ファイル

tarコマンドは、複数のファイルやディレクトリを一つのアーカイブファイルにまとめるコマンドです。圧縮のオプションを組み合わせると、.tar.gz、.tar.bz2、.tar.xz、.tar.zst などの圧縮されたアーカイブファイルを作れます。対応する圧縮形式は、GNU tarの公式マニュアルにまとめられています。

アーカイブファイルを作成してから、別のコマンドで圧縮する場合は、まずtarでまとめ、そのあと下の3つのうち、使いたい圧縮形式のコマンドを1つだけ実行します。

$ tar -cvf アーカイブファイル名.tar ファイルやディレクトリ

$ gzip アーカイブファイル名.tar
$ bzip2 アーカイブファイル名.tar
$ xz アーカイブファイル名.tar

gzipは、既定では元のファイルを削除して、.gzのファイルに置き換えます。元のファイルを残したいときは、-kオプションを付けます。

Ubuntuで利用できる主な圧縮形式の違いは、次のとおりです。

形式拡張子特徴アーカイブ機能
ZIP.zip様々なOSでサポートされている○
7Z.7z圧縮率が高い○
gzip.gzLinuxで標準で利用されている形式×
bzip2.bz2gzipより圧縮率が高い×
xz.xz圧縮率が高い×
zstd.zstzlib(gzipやzipと同じ系統の圧縮方式)と同等以上の圧縮率を、高速で実現する×

「アーカイブ機能」が×の形式(gzip・bzip2・xz・zstd)は、複数のファイルを1つにまとめられません。複数のファイルやディレクトリを圧縮するときは、tarでまとめてから圧縮します。

tarとzipの違いは、役割の分け方です。tarは、ファイルをまとめる(アーカイブする)コマンドで、圧縮はgzipなどの圧縮形式に任せます。zipは、1つのコマンドでまとめる処理と圧縮を同時に行い、WindowsやmacOSでも展開できます。

Linuxでファイルを圧縮する方法

ここでは、gzip・tar・zipの順に、圧縮と展開のコマンドを紹介します。コマンド例の先頭の「$」は入力の目印なので、実際には入力しません。

gzipで1つのファイルを圧縮する

gzipは、ファイルを1つずつ圧縮するコマンドです。複数のファイルを1つにまとめる機能はないため、複数のファイルやディレクトリは、次のtarと組み合わせます。

$ gzip test.txt

実行するとtest.txt.gzができ、元のtest.txtは置き換わります。元のファイルを残すときは、-kを付けます。

$ gzip -k test.txt

展開するときは、gunzipかgzip -dを使います。

$ gunzip test.txt.gz

アーカイブの作成(ファイルやディレクトリをまとめる)

ポイント

tar -cvf アーカイブファイル名.tar ファイル1 ファイル2 ディレクトリ1 …

  • -c: アーカイブの作成(create)
  • -v: 詳細な情報を表示(verbose)
  • -f: アーカイブファイル名の指定

例:

tar -cvf my_archive.tar file1.txt folder1

アーカイブの中身を確認するだけで、展開はしたくないときは、-tを使います。

tar -tvf my_archive.tar

アーカイブの展開

ポイント

tar -xvf アーカイブファイル名.tar

  • -x: アーカイブの展開(extract)

例:

tar -xvf my_archive.tar

圧縮を伴うアーカイブの作成(tar + gzip)

ポイント

tar -czvf アーカイブファイル名.tar.gz ファイル1 ファイル2 ディレクトリ1 …

  • -z: gzipで圧縮

例:

tar -czvf my_archive.tar.gz file1.txt folder1

gzip以外の圧縮形式を使うときは、-zの代わりに、次のオプションを指定します。圧縮に使うコマンド(bzip2・xz・zstdなど)が、あらかじめインストールされている必要があります。

圧縮形式オプション拡張子の例
gzip-z.tar.gz
bzip2-j.tar.bz2
xz-J.tar.xz
zstd–zstd.tar.zst

たとえば、xzで圧縮するときは、次のようにします。

tar -cvJf my_archive.tar.xz file1.txt folder1

圧縮を伴うアーカイブの展開(tar + gzip)

tar -xzvf アーカイブファイル名.tar.gz

GNU tarは、ファイルから読み込むときに圧縮形式を自動で判別します。そのため、-zを付けずにtar -xvf アーカイブファイル名.tar.gzとしても展開できます。

zipでディレクトリごと圧縮する

zipは、ファイルやディレクトリを1つのコマンドでまとめて圧縮します。ディレクトリを圧縮するときは、-rを付けると、ディレクトリの中のファイルとサブディレクトリもまとめて圧縮されます。

$ zip -r アーカイブファイル名.zip ディレクトリ名

展開するときは、unzipを使います。展開先のディレクトリを指定するときは、-dを付けます。

$ unzip アーカイブファイル名.zip
$ unzip アーカイブファイル名.zip -d 展開先ディレクトリ

zipやunzipがインストールされていないときは、sudo apt install zip unzipで追加できます。

これらのコマンドは、UnixやLinuxのターミナルで使用されます。オプションやファイル名は環境や具体的な使用ケースによって変わる可能性があります。man tarコマンドを使って、より詳細な情報を得ることができます。

圧縮形式を用いたファイル転送方法については以下の記事を参照ください。

まとめ

本記事のポイント

Linuxでファイルを圧縮するときは、まとめて圧縮したいなら tar、他のOSとやり取りするなら zip を使うのが基本です。

  • ✔ tarはファイルをまとめるコマンドで、-z・-j・-J・--zstdを付けると gzip・bzip2・xz・zstd で圧縮できます
  • ✔ gzipは1つのファイルを圧縮し、複数のファイルやディレクトリはtarと組み合わせます
  • ✔ zipはzip -rでディレクトリごと圧縮でき、unzipで展開します

まずは、手元のディレクトリでtar -czvfかzip -rを試してみてください。

関連リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次