拡張子ごとの圧縮・解凍方法一覧

良く忘れて調べるのでメモっておきます…

検証作業は「CentOS7」で行っています。

圧縮・解凍方法一覧

拡張子 解凍方法 圧縮方法
.tar.gz
.tgz
tar xfvz ファイル.tar.gz tar cfvz ファイル.tar.gz ファイル1 ファイル2
(ディレクトリの指定も可)
.tar.bz2
.tbz
tar xfvj ファイル.tar.bz2 tar cfvj ファイル.tar.bz2 ファイル1 ファイル2
.tar.Z tar xfvZ ファイル.tar.Z tar cfvZ ファイル.tar.Z ファイル1 ファイル2
.Z uncompress -v ファイル.Z compress -fv ファイル1
.zip unzip ファイル.zip zip file.zip ファイル1 ファイル2
zip -r dir.zip dir (ディレクトリ圧縮は-rを使用)
.bz2 bzip2 -dv ファイル.bz2 bzip2 -v ファイル1
.lzh lha e ファイル.lzh lha a ファイル.lzh ファイル1
.7z 7za x ファイル.7z 7za a ファイル.7z file1
.gz gzip -dv ファイル.gz gzip -v ファイル1
.rar unrar x ファイル.rar rar a ファイル.rar ファイル1
.cab cabextract ファイル.cab lcab -r ファイル1 ファイル.cab
.afz afio -ivZ ファイル.afz find . | afio -oxvZ ファイル.afz

今回は「-v」オプションを付けて詳細情報を表示できるものについては、圧縮・解凍の状況が分かりやすいに指定していますが、必要なければ省略してもかまいません。

使用例

tar.gz .tgz

「tar.gz」は「tar」でアーカイブされたデータを「gzip」で圧縮したものです。

圧縮

「tar.gz」形式でデータをアーカイブし圧縮する方法です。

tar cfvz ファイル名.tar.gz ファイル1 ファイル2

「10mb」と「20mb」2つのファイルをアーカイブして圧縮してみます。

$ tar cfvz data.tar.gz 10mb 20mb
10mb
20mb

解凍

「.tar.gz」形式のファイルを解凍する方法です。

tar xfvz ファイル名.tar.gz

先ほど圧縮した「data.tar.gz」を解凍します。

$ tar xfvz data.tar.gz
10mb
20mb

.tar.bz2 .tbz

「tar.bz2」は「tar」でアーカイブされたものを「bzip2」で圧縮したものとなります。

この形式を扱うには「bzip2」というパッケージが必要になりますので、システムに事前にインストールしておいてください。

# yum install bzip2

圧縮

「.tar.bz2」形式でファイルをアーカイブして圧縮する場合は、「tar」コマンドの「j」オプションで圧縮に「bzip2」を使用するように指定します。

tar cfvj ファイル名.tar.bz2 ファイル1 ファイル2

「10mb」と「20mb」2つのファイルをアーカイブして圧縮します。

$ tar cfvj data.tar.bz2 10mb 20mb
10mb
20mb

解凍

「.tar.bz2」形式のファイルを解凍する場合は、「tar」の「j」オプションで「bzip2」を使用してファイルを解凍するように指定します。

tar xfvj ファイル名.tar.bz2

先ほど作成した「data.tar.bz2」ファイルを解凍していきます。

$ tar xfvj data.tar.bz2
10mb
20mb

.tar.Z

「tar.Z」形式は、「tar」でアーカイブされたデータを「compress」を使用して圧縮しています。

そのため、圧縮する場合や解凍する場合は「ncompress」というパッケージが必要になるので、システムにインストールされていない場合は、事前にインストールを行う必要があります。

# yum install ncompress

圧縮

ここで指定するオプションの「Z」は大文字ですので注意してください。

tar cfvZ ファイル.tar.Z ファイル1 ファイル2

「10mb」と「20mb」の2つのファイルを「tar」でアーカイブして圧縮します。

$ tar cfvZ data.tar.Z 10mb 20mb
10mb
20mb

解凍

オプションの「Z」は大文字ですので注意してください。

tar xfvZ ファイル.tar.Z

先ほど作成した「data.tar.Z」ファイルを解凍します。

$ tar xfvZ data.tar.Z
10mb
20mb

.Z

「.Z」形式に圧縮する場合や解凍する場合は「compress」「uncompress」というコマンドを使用しますが、これらのコマンドがインストールされていない場合は、「ncompress」というパッケージをインストールする必要があります。

# yum install ncompress

圧縮

「.Z」形式で圧縮する場合は「compress」コマンドを使用します。

compress -fv ファイル1

実際に「compress」コマンドを使ってファイルを圧縮してみます。

$ compress -fv 10mb
10mb:  -- replaced with 10mb.Z Compression: 99.99%

解凍

「.Z」形式のファイルを解凍する場合は「uncompress」コマンドを使用します。

uncompress -v ファイル.Z

先ほど圧縮したファイルを解凍してみます。

$ uncompress -v 10mb.Z
10mb.Z:  -- replaced with 10mb

.zip

「.zip」形式で圧縮する場合は「zip」パッケージが必要となり、解凍する場合は「unzip」パッケージが必要となります。そのため、システムにインストールされていない場合は事前にインストールしてください。

# yum install zip
# yum install unzip

圧縮

「.zip」形式で圧縮する場合は「zip」コマンドを使用します。

zip ファイル.zip ファイル1

「zip」コマンドでファイルを圧縮します。

$ zip 10mb.zip 10mb
  adding: 10mb (deflated 100%)

解凍

「.zip」形式のファイルを解凍する場合は「unzip」コマンドを使用します。

unzip ファイル.zip

ファイルを解凍していきます。

$ unzip 10mb.zip
Archive:  10mb.zip
  inflating: 10mb

.bz2

「.bz2」形式で圧縮・解凍する場合は「bzip2」というパッケージが必要になりますので、事前にインストールしておいてください。

# yum install bzip2

圧縮

「.bz2」形式でファイルを圧縮する場合は「bzip2」コマンドを使用します。

bzip2 -v ファイル1

「bzip2」コマンドでファイルを圧縮します。

$ bzip2 -v 10mb
  10mb:    213995.102:1,  0.000 bits/byte, 100.00% saved, 10485760 in, 49 out.

解凍

「.bz2」形式のファイルを解凍する場合は、「.bzip2」コマンドの「-d」オプションを使用します。

bzip2 -dv ファイル.bz2

ファイルを解凍します。

$ bzip2 -dv 10mb.bz2
  10mb.bz2: done

.lzh

「.lzh」形式に圧縮する場合や解凍する場合は「lha」コマンドを使用するのですが、このパッケージは標準リポジトリや「epel」リポジトリにも存在しないため、「https://github.com/jca02266/lha」からダウンロードしてきて、インストールする必要があります。

「lha」パッケージをインストールするにあたって必要になる下記のパッケージも、システムにインストールされていない場合は、こちらもインストールしてください。

  • unzip
  • autoconf
  • automake
  • gcc
# yum install unzip
# yum install automake
# yum install gcc

※「automake」をインストールすると「autoconf」もあわせてインストールされます。

「lha」のソースをguthubからダウンロードしてきてインストール行います。

$ wget https://github.com/jca02266/lha/archive/master.zip
$ unzip master.zip
$ cd lha-master/
$ aclocal
$ autoheader
$ automake -a
$ autoconf
$ ./configure && make && make check
$ su -c "make install"

圧縮

「lha」コマンドの「a」オプションを使用することで「.lzh」形式でファイルを圧縮することが出来ます。

lha a ファイル.lzh ファイル1

ファイルを圧縮します。

$ lha a 10m.lzh 10mb
10mb    - Frozen(0%)  oooooooooooooooooooooooooooooooooooooooooooooooooooooo

解凍

解凍する場合は「lha」コマンドの「e」オプションを使用します。

lha e ファイル.lzh

ファイルを解凍します。

$ lha e 10m.lzh
10mb    - Melted   :  oooooooooooooooooooooooooooooooooooooooooooooooooooooo

7z

「7z」形式で圧縮・解凍を行うには「p7zip」というパッケージが必要になりますので、事前にepelリポジトリからインストールしておいて下さい。

# yum install --enablerepo=epel p7zip

圧縮

「7za」コマンドの「a」オプションを使用することで「.7z」形式でファイルを圧縮することが出来ます。

7za a ファイル.7z ファイル1

「.7z」形式でファイルを圧縮します。

$ 7za a 10mb.7z 10mb

7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,2 CPUs Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz (306F2),ASM,AES-NI)

Scanning the drive:
1 file, 10485760 bytes (10 MiB)

Creating archive: 10mb.7z

Items to compress: 1


Files read from disk: 1
Archive size: 1719 bytes (2 KiB)
Everything is Ok

解凍

「.7z」形式のファイルを解凍する場合は「7za」コマンドの「x」オプションを使用します。

7za x ファイル.7z

「.7z」形式のファイルを解凍します。

$ 7za x 10mb.7z

7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,2 CPUs Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz (306F2),ASM,AES-NI)

Scanning the drive for archives:
1 file, 1719 bytes (2 KiB)

Extracting archive: 10mb.7z
--
Path = 10mb.7z
Type = 7z
Physical Size = 1719
Headers Size = 114
Method = LZMA2:12m
Solid = -
Blocks = 1

Everything is Ok

Size:       10485760
Compressed: 1719

.gz

圧縮

「.gz」形式のファイルに圧縮する場合は「gzip」コマンドを使用します。

gzip -v ファイル1

「.gz」形式でファイルを圧縮します。

$ gzip -v 10mb
10mb:    99.9% -- replaced with 10mb.gz

解凍

「.gz」形式のファイルを解凍する場合は「gzip」コマンドの「d」オプションを使用します。

gzip -dv ファイル.gz

「.gz」形式のファイルを解凍します。

$ gzip -dv 10mb.gz
10mb.gz:         99.9% -- replaced with 10mb

.rar

「.rar」形式のファイルに圧縮・解凍する場合には「rar」と「unrar」というコマンドを使用しますが、CentOSのリポジトリには無いため、公式サイト「http://www.rarlab.com/」の「Downloads」からファイルをダウンロードして、インストールする必要があります。

# wget https://www.rarlab.com/rar/rarlinux-x64-5.6.b4.tar.gz
# tar xzfv rarlinux-x64-5.6.b4.tar.gz
# cd rar/
# make
# make install

圧縮

「.rar」形式で圧縮する場合は「rar」コマンドの「a」オプションを使用します。

rar a ファイル.rar ファイル1

「.rar」形式でファイルを圧縮します。

$ rar a 10mb.rar 10mb

RAR 5.60 beta 4   Copyright (c) 1993-2018 Alexander Roshal   21 May 2018
Trial version             Type 'rar -?' for help

Evaluation copy. Please register.

Creating archive 10mb.rar

Adding    10mb                                                        OK
Done

解凍

「.rar」形式のファイルを解凍する場合は「unrar」コマンドの「x」オプションを使用します。

unrar x ファイル.rar

「.rar」形式のファイルを解凍します。

$ unrar x 10mb.rar

UNRAR 5.60 beta 4 freeware      Copyright (c) 1993-2018 Alexander Roshal


Extracting from 10mb.rar

Extracting  10mb                                                      OK
All OK

.cab

「.cab」形式で圧縮する場合は「lcab」コマンドを使用し、解凍する場合は「cabextract」コマンドを使用します。

ちなみに、「.cab」形式はMicrosoftが開発した圧縮形式でなので、Linuxでデータを解凍するという事はあるかもしれませんが、圧縮する機会はあまりないと思います。

圧縮

「.cab」形式で圧縮する場合は「lcab」コマンドを使用するのですが、「lcab」が見つからなかったので圧縮方法についてはゴメンナサイ。(見つけることが出来たら追記したいと思います。)

調査してみたところ下記のような方法で圧縮できるらしいですが、未検証です…

lcab -r ファイル1 ファイル.cab

解凍

「.cab」形式のファイルを解凍する場合は「cabextract」コマンドを使用します。

標準ではインストールされていないと思いますので、「EPEL」リポジトリからインストールしてください。

# yum install --enablerepo=epel cabextract

「cabextract」コマンドの使用法です。

cabextract ファイル.cab

「.cab」形式のファイルを「cabextract」コマンドで解凍します。

$ cabextract 1.cab
Extracting cabinet: 1.cab
  extracting 10mb
  extracting 20mb

All done, no errors.

.afz

「.afz」形式でファイルをアーカイブして圧縮・解凍する場合は「afio」コマンドを使用するのですが、CentOSのリポジトリには存在しないため、公式サイトからソースをダウンロードしてインストールする必要があります。

# wget http://members.chello.nl/~k.holtman/afio-2.5.1.tgz
# tar zxf afio-2.5.1.tgz
# cd afio-2.5.1
# make
# make install

圧縮

「.afz」形式で複数のファイルをアーカイブして圧縮する場合は、「find」コマンド等でアーカイブしたいファイルを表示させて、それを「afio」コマンドに「|」(パイプ)で渡して圧縮という流れになります。

find . | afio -oxvZ ファイル.afz

下記の例では、まず「find」コマンドで「.」ディレクトリを指定して、その中のファイルを全て表示させて「afio」コマンドでアーカイブと圧縮を行っています。

$ find . | afio -oxvZ data.afz
. -- okay
data.afz -- okay
20mb.z -- (00%)
10mb.z -- (00%)

解凍

「.afz」形式のファイルを解凍する場合は「afio」コマンドの「ivZ」オプションを指定します。

afio -ivZ ファイル.afz

「.afz」形式のファイルを解凍します。

$ afio -ivZ data.afz
. -- okay
data.afz -- okay
20mb -- uncompressed
10mb -- uncompressed

シェアする