conf t

インフラエンジニアのメモ

Linuxで圧縮形式の確認方法

fileコマンドで対象のファイルがどんな形式で圧縮されているか確認できます。
以下例ではtest1.tar.gzはgzipで、test1.bz2はbzip2で圧縮されていることがわかりました。

# ls -lh
合計 8.0K
-rw-r--r-- 1 root root 135  9月 17 14:21 2016 test1.tar.gz
-rw-r--r-- 1 root root  47  9月 17 14:17 2016 test1.txt.bz2
# file test1.txt.bz2
test1.txt.bz2: bzip2 compressed data, block size = 900k
# file test1.tar.gz
test1.tar.gz: gzip compressed data, from Unix, last modified: Sat Sep 17 14:21:53 2016

普通は拡張子を見ればわかりますが、圧縮する際に拡張子を間違えてしまうなどで
拡張子通り解凍できないことがあります。そんな場合はこのようにfileコマンドで実際の圧縮形式を確認します。
あとはgzipであればgunzip、bzip2であればbunzip2とそれぞれの圧縮形式に対応する解凍コマンドで解凍します。

ちなみにtarの場合は圧縮形式を自動判別してくれます。

# tar xvf test1.tar.gz
test1.txt
# ls -lh
合計 12K
-rw-r--r-- 1 root root 135  9月 17 14:21 2016 test1.tar.gz
-rw-r--r-- 1 root root  16  9月 17 14:17 2016 test1.txt
-rw-r--r-- 1 root root  47  9月 17 14:17 2016 test1.txt.bz2

gz拡張子がついているので普通オプションはzcvfとしますが、
省略しても解凍してくれます。

参考:

Life with open mind: tar は圧縮形式を指定しなくても展開できる