bashでの圧縮と展開(zip, gz, bz2, xz, tar)
圧縮と展開
よく使われる拡張子とコマンド。
圧縮率 : .zip < .gz < .bz2 < .xz
拡張子 | 圧縮コマンド | 展開コマンド |
---|---|---|
.zip | zip | unzip |
.gz | gzip | gunzip |
.bz2 | bzip2 | bunzip2 |
.xz | xz | xz -d |
ファイルの圧縮と展開
基本的な使い方のみ。
zipのみ -r
指定で書庫を作らずにディレクトリごと圧縮が可能。
zip
zipは圧縮後のファイル名を指定したり、ディレクトリごとの圧縮を行う。
# archive.zipという名前で、A.txtとB.txtを圧縮
# 圧縮したファイルは残る
$ zip archive A.txt B.txt
$ ls
archive.zip A.txt B.txt
# ディレクトリごと圧縮する
$ zip -r archive A_Dir
# workディレクトリ(なければ作成)に展開する
$ unzip -d work archive.zip
gz, bz2, xz
元ファイルは残らない。ディレクトリの圧縮には書庫作成が必要。
# .gz
$ gzip A.txt # A.txt.gzで圧縮される
$ gunzip A.txt.gz
# .bz2
$ bzip2 A.txt # A.txt.bz2で圧縮される
$ bunzip2 A.txt.bz2
# .xz
$ xz A.txt # A.txt.xzで圧縮される
$ xz -d A.txt.xz
ディレクトリの圧縮と展開
ディレクトリを圧縮する際の手順は、
- tarコマンドで、複数ファイルを1つのファイルにまとめたアーカイブ(書庫)を作成
- 作成したアーカイブを圧縮する
tarコマンドの主なオプション
オプション | 説明 |
---|---|
- c | アーカイブを作成 |
-x | アーカイブを展開 |
-f アーカイブ名 | アーカイブ名 |
-v | 詳細表示 |
-z | gzip圧縮を行う |
-j | bzip2圧縮を行う |
-J | xz圧縮を行う |
# /etc/postfixディレクトリのアーカイブをカレントディレクトリに作成する
# .tarまで指定すること
$ tar -cvf test.tar /etc/postfix # test.tarが作成される(作成元は残る)
# test.tarを展開する
$ tar -xvf test.tar
# アーカイブ作成と同時に.gzで圧縮する
$ tar -czvf test.tar.gz /etc/postfix # test.tar.gzが作成される
# test.tar.gzを展開する(ファイルと違い、test.tar.gzは残る)
$ tar -xzvf test.tar.gz
# アーカイブ作成と同時に.bz2で圧縮する
$ tar -cjvf test.tar.bz2 /etc/postfix # test.tar.bz2が作成される
# test.tar.bz2を展開する
$ tar -xjvf test.tar.gz
# アーカイブ作成と同時に.xzで圧縮する
$ tar -cJvf test.tar.xz /etc/postfix # test.tar.xzが作成される
# test.tar.xzを展開する
$ tar -xJvf test.tar.gz