7zip はファイル圧縮ツール。7z, zip, cab, rar, arj, lzh, chm, gzip, bzip2, tar, cpio, rpm, deb の各形式に対応している。ライセンスは LGPL。
7-Zip ようこそ7-Zipウェブサイトへ!
http://www.7-zip.org/ja/
つまり、「圧縮率は重視するが、作成した圧縮ファイルは一般的なファイル展開・解凍ツールで展開できるようにしておきたい」という場合は、7zip を使って zip 形式や bzip2 形式で圧縮ファイルを作成すればよい。
2005-09-14 「Content Negotiation でリクエストに応じて gzip 圧縮ファイルを返す」
2005-09-15 「mod_rewrite でリクエストに応じて gzip 圧縮ファイルを返す」
ちなみに、シェル統合の機能があるので Windows のエクスプローラの右クリックから圧縮したいファイルを指定して 7zip を起動するのが一般的な使い方だ。
7zip のコマンドラインオプションの意味は以下の通り。
-tgzip は圧縮形式に gzip を指定。
-mx は 圧縮レベルに最高の9を指定。
-mfb は「Deflate エンコーダに渡す Fast Bytes の値」の指定。大きいほど圧縮率が上がるが、その分遅くなる。128を指定。
7zip は5秒ほど、GNU gzip は0.6秒ほど。所要時間約十倍。ちなみに実行環境は 2005-06-18 の「Athlon64 マシンを自作する」で作った Athlon64 3000+ (Venice コア)、メモリ 2GB のマシン。
サイズは 7zip で作ったものの方が40KB ほど小さくなっている。約4%。これだけだと差は小さい気がする。
最初に cd している理由は、パスの処理を一ディレクトリ内で完結させるため。cygwin から 一般のコマンドを呼び出しているときは、そのコマンドは / から始まる cygwin のファイルシステムのパスを解釈してくれない。これを解決するには、カレントディレクトリ内ですべてを実行するのが手っ取り早い。
7-Zip ようこそ7-Zipウェブサイトへ!
http://www.7-zip.org/ja/
- 7zip で作った zip ファイルは互換性もあるし圧縮率も高い
7zip は独自形式の 7z 形式ばかり注目されがちだが、一般的な zip や bzip2 や gzip や lzh の圧縮もできる。また、7zip で作成した圧縮ファイルは、一般的なファイル圧縮ツールで圧縮したものよりもサイズが小さくなるという特徴を持つ。もちろん、一般的なファイル圧縮ツールで生成した圧縮ファイルと互換性がある。他のツールよりも圧縮に時間をかけて、より圧縮率が高くなるようにしているとのこと。つまり、「圧縮率は重視するが、作成した圧縮ファイルは一般的なファイル展開・解凍ツールで展開できるようにしておきたい」という場合は、7zip を使って zip 形式や bzip2 形式で圧縮ファイルを作成すればよい。
- コマンドラインから 7zip を使う
7zip の配布パッケージには GUI 版だけでなくコマンドライン版も同梱されている。今回はこれを cygwin のコマンドラインから使う。目的は例によって以下の2つの記事で書いた gzip 圧縮した RSS ファイルや index.html ファイルを得るため。2005-09-14 「Content Negotiation でリクエストに応じて gzip 圧縮ファイルを返す」
2005-09-15 「mod_rewrite でリクエストに応じて gzip 圧縮ファイルを返す」
ちなみに、シェル統合の機能があるので Windows のエクスプローラの右クリックから圧縮したいファイルを指定して 7zip を起動するのが一般的な使い方だ。
- 7zip.exe と Gnu gzip コマンドの圧縮率と所要時間の差
それぞれ time コマンドをかませて、圧縮所要時間を計測。7zip のコマンドラインオプションの意味は以下の通り。
-tgzip は圧縮形式に gzip を指定。
-mx は 圧縮レベルに最高の9を指定。
-mfb は「Deflate エンコーダに渡す Fast Bytes の値」の指定。大きいほど圧縮率が上がるが、その分遅くなる。128を指定。
$ time /cygdrive/c/Program\ Files/7-Zip/7z.exe a -tgzip -mx=9 -mfb=128 cl-full.xml.7zip.gz cl-full.xml
7-Zip 4.23 Copyright (c) 1999-2005 Igor Pavlov 2005-06-29
Scanning
Updating archive cl-full.xml.7zip.gz
Compressing cl-full.xml
Everything is Ok
real 0m5.470s
user 0m0.015s
sys 0m0.015s
$ gzip -V
gzip 1.3.5
(2002-09-30)
$ time gzip -9 -c cl-full.xml >cl-full.xml.gzip.gz
real 0m0.552s
user 0m0.546s
sys 0m0.030s
7zip は5秒ほど、GNU gzip は0.6秒ほど。所要時間約十倍。ちなみに実行環境は 2005-06-18 の「Athlon64 マシンを自作する」で作った Athlon64 3000+ (Venice コア)、メモリ 2GB のマシン。
サイズは 7zip で作ったものの方が40KB ほど小さくなっている。約4%。これだけだと差は小さい気がする。
-rw----r-- 1 landscape なし 4191059 Nov 8 22:24 cl-full.xml
-rw----r-- 1 landscape なし 912885 Nov 8 22:27 cl-full.xml.7zip.gz
-rw----r-- 1 landscape なし 952781 Nov 8 22:28 cl-full.xml.gzip.gz
- スクリプトに組み込み
できた。2005-10-25 の「一定以上のサイズを持つファイルを gzip 圧縮するシェルスクリプト」に以下を追加した。cd $HOME/public_html/log.sonic64/
seven_zip_target="cl-full.xml index.html cl.xml"
for file in $seven_zip_target; do
echo "compressing with 7zip $file"
/cygdrive/c/Program\ Files/7-Zip/7z.exe a -tgzip -mx=9 -mfb=128 $file.gz $file
touch -r $file $file.gz
chmod 604 $file.gz
done
最初に cd している理由は、パスの処理を一ディレクトリ内で完結させるため。cygwin から 一般のコマンドを呼び出しているときは、そのコマンドは / から始まる cygwin のファイルシステムのパスを解釈してくれない。これを解決するには、カレントディレクトリ内ですべてを実行するのが手っ取り早い。
- すべての記事の見出し (全1029件)
- 全カテゴリの一覧と記事の数
- カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。
- .net (57件)
- 2ch (19件)
- amazon (5件)
- Apache (22件)
- bash (13件)
- Bookmarklet (9件)
- C# (45件)
- chalow (18件)
- ChangeLog メモ (20件)
- coLinux (2件)
- CSS (5件)
- Delphi (5件)
- DVD (6件)
- Excel (1件)
- F-ZERO (4件)
- FF12 (31件)
- ftp (8件)
- Google (21件)
- gpg (7件)
- HTML (19件)
- http (19件)
- IE (10件)
- IIS (4件)
- iPod (2件)
- JavaScript (14件)
- Linux (63件)
- MCP (6件)
- Mozilla (14件)
- MS SQL Server (30件)
- MySQL (4件)
- Namazu (3件)
- PC (48件)
- Perl (58件)
- PHP (2件)
- Postgres (36件)
- proftpd (2件)
- qmail (1件)
- RFC (4件)
- RSS (33件)
- Ruby (15件)
- samba (3件)
- sonic64.com (6件)
- SQL (15件)
- Squid (3件)
- ssh (7件)
- Subversion (3件)
- unix (31件)
- VSS (2件)
- Windows (34件)
- winny (9件)
- XML (9件)
- xyzzy (17件)
- おいでよ どうぶつの森 (19件)
- お菓子 (5件)
- アスキーアート (13件)
- アニメ (9件)
- クレジットカード (2件)
- ゲーム (120件)
- シェルスクリプト (18件)
- シレン2 (8件)
- セキュリティ (9件)
- ソフトウェア (21件)
- デザインパターン (2件)
- ネットワーク (30件)
- バックアップ (17件)
- プログラミング (14件)
- マリオカートDS (3件)
- メール (26件)
- メモ (116件)
- ラーメン (11件)
- 音楽 (59件)
- 給油 (3件)
- 三国志大戦 (13件)
- 車 (7件)
- 書斎 (4件)
- 食 (30件)
- 買い物 (17件)
- 簿記 (8件)
- 本 (32件)
- 漫画 (9件)
- 2007-04-23 (Mon)
- 2007-03-07 (Wed)
- 2007-02-27 (Tue)
- 2007-01-17 (Wed)
- 2007-01-15 (Mon)
- 2007-01-14 (Sun)
- 2007-01-08 (Mon)
- 2006-12-01 (Fri)
- 2006-11-22 (Wed)
- 2006-11-20 (Mon)
- 2006-11-19 (Sun)
- 2006-09-30 (Sat)
- 2006-08-29 (Tue)
- 2006-08-04 (Fri)
- 2006-07-27 (Thu)
- 2006-07-23 (Sun)
- 2006-07-17 (Mon)
- 2006-07-10 (Mon)
- 2006-07-06 (Thu)
- 2006-07-03 (Mon)
- 2006-06-29 (Thu)
- 2006-06-28 (Wed)
- 2006-06-27 (Tue)
- 2006-06-25 (Sun)
- 2006-06-19 (Mon)
- 2006-06-18 (Sun)
- 2006-06-15 (Thu)
- 2006-06-11 (Sun)
- 2006-06-01 (Thu)
- 2006-05-30 (Tue)
- プロファイル
- 斎藤 宏明。エンジニアです。宇都宮市に住んでいます。
- リンク
- RSS
- スポンサードリンク
- Powered by
- ☆さくらインターネット☆