今回は圧縮・解凍に関するコマンド操作ネタ。

普段一番よく使うのは解凍関係のコマンドで、圧縮関係は意外と忘れやすい筆者です。

ただ増えるログなどは圧縮するのにスクリプト内で使うこともあるので自身の備忘も兼ねて整理して記載します。

今回はLinux/macOSXにおける「tar.gz」、「zip」、「rar」、「7zip」の基本的な
圧縮解凍系コマンドを紹介します。


*.tar.gzの場合

Linuxを触っていると一番多いのがこの形式ですね。

tarコマンドはインストール後には標準で含まれていると思いますので追加インストールは不要です。


ファイルをアーカイブする

アーカイブは複数ファイルを一つにまとめることである。

アーカイブは圧縮されていない状態。

$ tar -cf - *.log

ファイルを圧縮する

「z」オプションを追加し、上記のアーカイブを続けて圧縮します。

$ tar -zcf /tmp/all_log.tar.gz *.log

上記に「v」オプションを付けると圧縮工程が可視化されます。

$ tar -zvcf /tmp/all_log.tar.gz *.log

または以下のようにgzipと組み合わせて圧縮します。

$ tar -cf - *.log | gzip -c > /tmp/all_log.tar.gz

ファイルを解凍する

$ tar -xzf /tmp/all_log.tar.gz

上記に「v」オプションを付けると解凍工程が可視化されます。

$ tar -xvzf /tmp/all_log.tar.gz

または以下のようにgunzipと組み合わせて解凍します。

$ gunzip -c /tmp/all_log.tar.gz | tar -xf -

*.zipの場合

zip形式の場合はtar.gz形式に比べると簡単だと思います。

インストールされていない場合は以下でインストールします。

$ sudo apt-get install zip unzip
$ sudo pacman -S zip unzip

ファイルを圧縮する

一つのファイルをzip圧縮する。

$ zip all_log file_01.log

次に複数ファイルを圧縮する場合。

$ zip all_log file_01.log file_02.log

圧縮時にパスワードをかける場合

$ zip -e all_log file_01.log
Enter password: 
Verify password: 
  adding: all_log (deflated 36%)

ファイルを解凍する

$ unzip all_log.zip

*.rarの場合

rar形式もたまに見かけますよね、Windows向けのアプリのWinRarは有名ですが、
Linuxでもrar形式の圧縮解凍は可能です。

ArchLinux系のインストールは以下

$ sudo pacman -S unrar

ファイルを圧縮する

rarを使います。

$ rar a all_log.rar file_01.log file_02.log

フォルダ全体の場合

$ rar a all_log.rar *

ファイルを解凍する

unrarを使います。

$ unrar x all_log.rar

*.7zの場合

いよいよ最後に、7zip形式のLinuxでの圧縮解凍手順を紹介します。

Ubuntu系のインストールは以下

$ sudo apt-get install p7zip-full

ArchLinux系のインストールは以下

$ sudo pacman -S p7zip

ファイルを圧縮する

$ 7z a all_log.7z file_01.log file_02.log

ファイルを解凍する

7z x archive4.7z

と言うわけで、今回は、tar.gz、zip、rar、7zipの基本的な圧縮解凍コマンドを紹介しました。

tar.gzはよく使うコマンドだと思いますが、他も覚えておいて損はないでしょう。

上記は基本的な使い方ですので、詳細はオプションやヘルプなどを参照してください。

何かの参考になれば幸いです。