良く忘れて調べるのでメモっておきます…
検証作業は「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
コメント