[Unix][備忘録][Solaris]Unixでファイル圧縮・解凍するときに使うコマンドをまとめた
あらすじ
不意に.Zファイルがやってきて解凍の仕方を調べてしまった。あとだいたいオプションを忘れるのでメモ。対象ファイルは以下。
- .zip
- .Z
- .gz
- .bz2
- .tar.gz
- .tgz
- .tar.bz2
- .tbz
- .tar.Z
こんなファイルを固めたり解凍したり。
extracted
┣direct/
┃┗ls.txt # man ls >> ls.txt
┣slink
┣tar.txt # man tar >> tar.txt
┗zip.txt # man zip >> zip.txt
tar
┗sample.tar
$ tar tvf sample.tar ../extracted
drwxr-xr-x 9999/9999 0 12月 8日 19:14 2011年 ../extracted/
lrwxrwxrwx 9999/9999 7 12月 8日 19:13 2011年 ../extracted/slink tar.txt へのシンボリックリンク
drwxr-xr-x 9999/9999 0 12月 8日 19:37 2011年 ../extracted/direct/
-rw-r--r-- 9999/9999 36890 12月 8日 19:37 2011年 ../extracted/direct/ls.txt
-rw-r--r-- 9999/9999 39133 12月 8日 19:07 2011年 ../extracted/tar.txt
-rw-r--r-- 9999/9999 40835 12月 8日 19:11 2011年 ../extracted/zip.txt
zip(unzip) 拡張子: zip
- 圧縮
- zip 圧縮後のファイル名 [ファイル ファイル]
$ zip ../compressed/c.zip *
adding: direct/ (stored 0%)
adding: slink (deflated 71%)
adding: tar.txt (deflated 71%)
adding: zip.txt (deflated 67%)
$ zip -r ../compressed/c.zip *
adding: direct/ (stored 0%)
adding: direct/ls.txt (deflated 75%)
adding: slink (deflated 71%)
adding: tar.txt (deflated 71%)
adding: zip.txt (deflated 67%)
- 解凍
- unzip 解凍ファイル.zip -d 解凍パス
$ unzip ../compressed/c.zip -d ../compressed/output/zip/
Archive: ../compressed/c.zip
creating: ../compressed/output/zip/direct/
inflating: ../compressed/output/zip/direct/ls.txt
inflating: ../compressed/output/zip/slink
inflating: ../compressed/output/zip/tar.txt
inflating: ../compressed/output/zip/zip.txt
rでディレクトリの下も含めてまとめて。解凍時にdでパス指定
compress(uncompress) 拡張子: Z, tar.Z
- 圧縮
- compress -fv [ファイル ファイル]
$ compress -fv *
direct: 圧縮: 86.32% -- 通常ファイルではありません: 変更されていません。
slink: 圧縮: 60.13% -- slink.Z と置換しました。
tar.txt: 圧縮: 60.13% -- tar.txt.Z と置換しました。
zip.txt: 圧縮: 57.45% -- zip.txt.Z と置換しました。
$ compress -v sample.tar
sample.tar: 圧縮: 60.78% -- sample.tar.Z と置換しました。
- 解凍
- compress -dv [ファイル ファイル]
- uncompress -v [ファイル ファイル]
$ compress -dv *
direct.Z: ファイルもディレクトリもありません。
slink.Z: -- slink と置換しました。
tar.txt.Z: -- tar.txt と置換しました。
zip.txt.Z: -- zip.txt と置換しました
$ uncompress -v *
direct.Z: ファイルもディレクトリもありません。
slink.Z: -- slink と置換しました。
tar.txt.Z: -- tar.txt と置換しました。
zip.txt.Z: -- zip.txt と置換しました。
$ compress -dv sample.tar.Z
sample.tar.Z: -- sample.tar と置換しました。
$ uncompress -v sample.tar.Z
sample.tar.Z: -- sample.tar と置換しました
そのファイル自体が置換される? fは強制(圧縮しても小さくならない、ファイルが既に存在する場合も上書き)、vは冗長、dは解凍?
gzip(gunzip) 拡張子: gz, tar.gz, tgz
- 圧縮
- gzip [ファイル ファイル]
$ gzip -rv *
direct/ls.txt: 75.2% -- replaced with direct/ls.txt.gz
slink: 71.3% -- replaced with slink.gz
tar.txt: 71.3% -- replaced with tar.txt.gz
zip.txt: 66.7% -- replaced with zip.txt.gz
$ gzip -v sample.tar
sample.tar: 72.2% -- replaced with sample.tar.gz
- 解凍
- gzip -d [ファイル ファイル]
- gunzip [ファイル ファイル]
$ gzip -rdv *
direct/ls.txt.gz: 75.2% -- replaced with direct/ls.txt
slink.gz: 71.3% -- replaced with slink
tar.txt.gz: 71.3% -- replaced with tar.txt
zip.txt.gz: 66.7% -- replaced with zip.txt
$ gunzip -rv *
direct/ls.txt.gz: 75.2% -- replaced with direct/ls.txt
slink.gz: 71.3% -- replaced with slink
tar.txt.gz: 71.3% -- replaced with tar.txt
zip.txt.gz: 66.7% -- replaced with zip.txt
$ gzip -dv sample.tar.gz
sample.tar.gz: 72.2% -- replaced with sample.tar
$ gunzip -v sample.tar.gz
sample.tar.gz: 72.2% -- replaced with sample.tar
そのファイル自体が置換される? fは強制。vは冗長。dで解凍。
bzip2(bunzip2) 拡張子: bz2, tar.bz2, tbz
- 圧縮
- bzip2 [ファイル ファイル]
$ bzip2 -v *
bzip2: Input file direct is a directory.
slink: 4.001:1, 1.999 bits/byte, 75.01% saved, 39133 in, 9780 out.
tar.txt: 4.001:1, 1.999 bits/byte, 75.01% saved, 39133 in, 9780 out.
zip.txt: 3.355:1, 2.384 bits/byte, 70.19% saved, 40835 in, 12171 out.
$ bzip2 -v sample.tar
sample.tar: 4.165:1, 1.921 bits/byte, 75.99% saved, 121856 in, 29256 ou
t.
- 解凍
- bzip2 -d [ファイル ファイル]
- bunzip2 [ファイル ファイル]
$ bzip2 -dv *
bzip2: Input file direct is a directory.
slink.bz2: done
tar.txt.bz2: done
zip.txt.bz2: done
$ bunzip2 -v *
bunzip2: Input file direct is a directory.
slink.bz2: done
tar.txt.bz2: done
zip.txt.bz2: done
$ bzip2 -dv sample.tar.bz2
sample.tar.bz2: done
$ bunzip2 -v sample.tar.bz2
sample.tar.bz2: done
そのファイル自体が置換される? fは強制。vは冗長。dで解凍。ディレクトリの下は指定しないとダメ?
圧縮結果(参考)
-rw-r--r-- 1 test test 47784 12月 8日 21:38 sample.tar.Z
-rw-r--r-- 1 test test 29256 12月 8日 21:41 sample.tar.bz2
-rw-r--r-- 1 test test 33934 12月 8日 21:21 sample.tar.gz
今回の結果だと、ファイルサイズはおおむね Z > gz > bz2 になっている。