概要
この記事では、ファイルのアーカイブと圧縮方法について説明します。
ファイル形式 tar、gzip、bzip2、xz、zip、7z について解説します。
アーカイブ
アーカイブ (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

コメント