ZIP†
$ zip out.zip target-file
$ zip -r out.zip target-dir
暗号化圧縮†
$ zip -e <dest-file.zip> <src-file-or-dir> -P <passwd>
- 実行すると、解凍用のパスワードの入力を求められる。
- "-r" を付ければディレクトリを圧縮出来る。
$ unzip target.zip
zipinfo†
zipinfo のオプション†
option | desctiption | remark |
-1 | ファイル名のみ表示 | |
-2 | ファイル名のみを表示(「-h」「-t」「-z」オプションを併用可) | |
-m | 格納されているファイルごとの圧縮率を表示 | |
-l | 格納されているファイルごとの圧縮後サイズを表示 | |
-v | 格納されているファイルごとの詳細な情報を出力 | |
-h | ヘッダを表示 | |
-t | トータル行を表示 | |
-z | ZIPファイルのコメントを表示 | |
-T | タイムスタンプを8桁.6桁(YYYYMMDD.hhmmss)形式で表示 | |
-M | 1画面ごとに停止しながら表示 | |
-x <file-name> | 出力から除外するファイル名を指定 | |
tar + bzip2†
$ tar -cvjf out.tar.bz2 target
$ tar -xvjf target.tar.bz2
tar + xz†
- Debian 6.x のtarは xzをサポートしているが、CentOS6.x では未サポート。
$ tar -cvJf out.tar.xz target
$ tar -xvJf target.tar.xz
- xz単体の解凍には、zip のように unxz コマンドも使えるし、 bzip2 のように "xz -d" も使える。
$ 7z a <out-archive-name>.7z <src>
$ 7z e <src-archive-name>.7z
アーカイヴ内容の一覧を表示(tar -tvf に相当)†
$ 7z l <src-archive-name>.7z
Zstandard†
- Facebook が開発した可逆圧縮アルゴリズム
- bzip2 等と同様、アーカイヴ機能はないので、ディレクトリなどを圧縮する場合は tar や cpio 等と組み合わせて使う。
- 拡張子は .zst
- 特徴は、 xz と比べて圧倒的に高速であり、且つ圧縮率でも遜色ないことである。
$ zst -z <src-file>
$ zst -d <src-file>
tar と組み合わせて圧縮†
$ tar -cvf <out-archive-name>.tar.zst <src-file-or-dir> -I zstd
高速圧縮†
tar にサポートされていないプログラムを tar と組み合わせて使うとき†
tar + pxz†
tar + pbzip2†
$ tar -cvf out.tar.bz2 -Ipbzip2 in-file
または
$ tar -cvf out.tar.bz2 --use-compress-program pbzip2 in-file
- どれくらい差が出るか?
CPU | Core i7-3520M (4-Core) |
target | linux-2.6.32.65 (439MB) |
tar + pbzip2 | elapsed time | 17.510 [sec] | size | 68824777 |
tar + bzip2 | elapsed time | 38.542 [sec] | size | 68701378 |
tar + pigz†
$ tar -cvf out.tar.gz in-file -Ipigz
または
$ tar -cvf out.tar.gz in-file --use-compress-program pigz
p7zip†
cpio†
- cpio には色々機能があるが、ここでは tar からの置き換えを前提に記述する
使用方法†
- 指定されたファイルを tar のように1個のファイルに纏める。
- 入力ファイルは全て標準入力から渡さなければならない。つまり、 tar ではディレクトリを指定したらその配下のファイルが全て対象になったが、cpio の場合は個別にファイルを指定しなければならない。
- 逆に考えれば、特定のパターンの名前を持ったファイルを個別に除外できる、という事でもある。
cpio と tar†
- tar は管理情報をアーカイヴの先頭にまとめて記述しており、そこが破損すると全てのファイルが復元不可能になる。
- cpio は、アーカイヴの中でファイル毎に管理情報を記録しており、アーカイヴの一部が破損しても、影響範囲はその破損部位に関係のあるファイルのみで済む。
使い方†
cpio.xz を作成する†
$ find -print <target-dir> | cpio -o | xz > archive-name.cpio.xz
<target-file>.cpio.xz を解凍する†
$ xz -dc <target-file>.cpio.xz | cpio -i
- xz, pbzpi2, bzip2, gzip 共に、 "-c" で解凍結果を標準出力に出力する。
- (p)bzip2 で元ファイルを勝手に削除させたくない場合は、 "-k" を追加指定する
<target-file>.cpio の中身を閲覧する†
- tar -tvf のように、内包するファイルのリストを表示させる
$ cpio -it < <target-file>.cpio
cpio で POSIX.1 tar format を取り扱う†
参考リンク†
lzh / lha†
option†
option | description | remark |
-l <archive-file> | <archive-file> に含まれるファイルの一覧を表示する | |