Linux – ファイルのアーカイブと圧縮方法 (tar, gzip, zip, 7z など)

目次

概要

この記事では、ファイルのアーカイブと圧縮方法について説明します。 ファイル形式 targzipbzip2xzzip7z について解説します。

アーカイブ

アーカイブ (Archive) は、複数のファイルやディレクトリを一つのファイルにまとめる処理です。 これにより、複数のファイルを一度に管理したり、転送したりすることが容易になります。 アーカイブを行うソフトウェアをアーカイバ (Archiver) といい、作成されたファイルをアーカイブファイル (Archive File) といいます。 アーカイバ自体には圧縮機能はありませんが、圧縮ツールと組み合わせて使用されることが多いです。

圧縮

圧縮は、ファイルのサイズを小さくする処理です。 これは主に、ディスクスペースを節約したり、データをより速く転送したりするために行われます。 圧縮されたファイルは、解凍することで元の形式に戻すことができます。

アーカイバと圧縮の組み合わせ

多くの場合、アーカイバと圧縮ツールは組み合わせて使用されます。 例えば、tar コマンドで複数のファイルを一つのアーカイブにまとめ、その後 gzip で圧縮する場合があります。 このようにして生成されたファイルは .tar.gz または .tgz という拡張子になります。

# 複数のファイルを .tar アーカイブにまとめた後、gzip で圧縮し、archive.tar.gz が生成する
tar -cvf archive.tar file1 file2
gzip archive.tar

また、zip のようにアーカイバと圧縮が一度に行えるツールも存在します。

アーカイバ・圧縮形式の一覧

アーカイバ名 拡張子 アーカイバ 圧縮 圧縮コマンド apt パッケージ
tar .tar tar 標準インストール済み
gzip .gz tar 標準インストール済み
bzip2 .bz2 tar 標準インストール済み
xz .xz tar 標準インストール済み
zip .zip zip zip
7-zip .7z 7z p7zip-full

各アーカイバ・圧縮形式の圧縮・解凍・閲覧コマンド

圧縮形式 作成 解凍 内容を表示
tar tar -cvf archive.tar directory/ tar -xvf archive.tar tar -tvf archive.tar
gzip tar -cvzf archive.tar.gz directory/ tar -xvzf archive.tar.gz tar -tvzf archive.tar.gz
bzip2 tar -cvjf archive.tar.bz2 directory/ tar -xvjf archive.tar.bz2 tar -tvjf archive.tar.bz2
xz tar -cvJf archive.tar.xz directory/ tar -xvJf archive.tar.xz tar -tvJf archive.tar.xz
zip zip -r archive.zip directory/ unzip archive.zip unzip -l archive.zip
7-zip 7z a archive.7z directory/ 7z x archive.7z 7z l archive.7z

圧縮形式の圧縮率

各圧縮形式の圧縮率および処理速度の一般的な傾向は以下のようになります。

アーカイバ名 圧縮率 圧縮速度 解凍速度
gzip 高速 高速
bzip2
xz 非常に高 低速 低速
zip 高速 高速
7-zip 非常に高

tar

tar コマンドの基本的な構文は次のとおりです:

tar [オプション] [アーカイブファイル名] [ファイルまたはディレクトリ]
オプション 説明
-c 新しいアーカイブを作成します。
-f アーカイブファイルの名前を指定します。このオプションは必須です。
-v 詳細情報を表示します。アーカイブ操作の進行状況を表示します。
-x アーカイブを展開します。
-t アーカイブの内容を一覧表示します。
-z gzip 圧縮を使用します。
-j bzip2 圧縮を使用します。
-J xz 圧縮を使用します。
-r 既存のアーカイブにファイルを追加します。
-u アーカイブ内の既存のファイルを更新します。
--delete アーカイブからファイルを削除します。
--exclude 指定したパターンに一致するファイルをアーカイブに含めません。
-C 指定したディレクトリに移動してから操作を行います。

アーカイブの作成

tar コマンドを使用してアーカイブを作成する方法について説明します。

tar の作成

tar -cvf archive.tar directory/

directory/ をアーカイブし、 archive.tar を作成します。

tar.gz の作成

tar -cvzf archive.tar.gz directory/

directory/ をアーカイブ後に gzip 圧縮し、archive.tar.gz を作成します。

tar.bz2 の作成

tar -cvjf archive.tar.bz2 directory/

directory/ をアーカイブ後に bzip2 圧縮し、archive.tar.bz2 を作成します。

tar.xz の作成

tar -cvJf archive.tar.xz directory/

directory/ をアーカイブ後に xz 圧縮し、archive.tar.xz を作成します。

アーカイブの解凍

tar コマンドを使用してアーカイブを解凍する方法について説明します。

tar の解凍

tar -xvf archive.tar

archive.tar を解凍します。

tar.gz の解凍

tar -xvzf archive.tar.gz

archive.tar.gz を解凍します。

tar.bz2 の解凍

tar -xvjf archive.tar.bz2

archive.tar.bz2 を解凍します。

tar.xz の解凍

tar -xvJf archive.tar.xz

archive.tar.xz を解凍します。

アーカイブの内容を表示

tar コマンドを使用してアーカイブの内容を表示する方法について説明します。

tar ファイルの内容を表示

tar -tvf archive.tar

archive.tar の内容を一覧表示します。

tar.gz ファイルの内容を表示

tar -tvzf archive.tar.gz

archive.tar.gz の内容を一覧表示します。

tar.bz2 ファイルの内容を表示

tar -tvjf archive.tar.bz2

archive.tar.bz2 の内容を一覧表示します。

tar.xz ファイルの内容を表示

tar -tvJf archive.tar.xz

archive.tar.xz の内容を一覧表示します。

zip

zip は圧縮形式の一つです。複数のファイルやディレクトリを一つの圧縮ファイルにまとめることができ、アーカイブと圧縮が同時に行えます。Ubuntu では標準でインストールされていないため、aptでインストールします。

sudo apt install zip

コマンドは、圧縮を行う zip コマンドと解凍を行う unzip コマンドに分かれています。

zip コマンド: ファイルを圧縮する

zipコマンドは、複数のファイルやディレクトリを一つの zip ファイルに圧縮するために使用されます。

# ディレクトリ directory/ を再帰的に圧縮して archive.zip を作成する
zip -r archive.zip directory/

# ファイル file1 と file2 を圧縮して archive.zip を作成する
zip archive.zip file1 file2

# パスワードを設定して圧縮する
zip -e archive.zip file1 file2

unzip コマンド: ファイルを解凍する

unzipコマンドは、zip ファイルを解凍するために使用されます。

# archive.zip をカレントディレクトリに解凍する
unzip archive.zip

# archive.zip を指定したディレクトリに解凍する
unzip archive.zip -d /path/to/directory

# archive.zip の内容を表示する
unzip -l archive.zip

7-zip

7zip は、7z 形式を使用する強力なファイル圧縮ツールであり、他の多くの圧縮形式 (zip, rar, tar, gzip など) もサポートしています。Ubuntu では標準でインストールされていないため、aptでインストールします。

sudo apt install p7zip-full

ファイルを圧縮する

7zコマンドで、複数のファイルやディレクトリを圧縮するには、a オプションを指定します。

# ディレクトリ directory/ を再帰的に圧縮して archive.7z を作成する
7z a archive.7z directory/

# ファイル file1 と file2 を圧縮して archive.7z を作成する
7z a archive.7z file1 file2

# パスワードを設定して圧縮する
7z a -pPASSWORD archive.7z file1 file2

7z コマンド: ファイルを解凍する

7zコマンドで、圧縮ファイルを解凍するには、x オプションを指定します。

# archive.7z をカレントディレクトリに解凍する
7z x archive.7z

# archive.7z を指定したディレクトリに解凍する
7z x archive.7z -o/path/to/directory

# archive.7z の内容を表示する
7z l archive.7z

コメント

コメントする

目次