概要
この記事では、ファイルのアーカイブと圧縮方法について説明します。
ファイル形式 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
コメント