2003 年 11 月 18 日

BOMArchiveHelper

BOMArchiveHelper某誌原稿用の覚え書きより。

Mac OS X 10.3(Panther)以降は、Finder やアクションメニュー、コンテクストメニューから Zip 形式アーカイブの展開や作成ができるようになりました。この展開/圧縮処理を担っているのが /System/Library/CoreServices/ にあるフェイスレスな(=メニューや Dock アイコンを表示しないタイプの)アプリケーション“BOMArchiveHelper”(以下 BAH と略)です。

この BAH、実体は UNIX コマンド“ditto”のアーカイブ展開/作成機能に GUI ラッパーを被せたもののようで、Zip 形式だけではなく CPIO 形式や CPGZ 形式のアーカイブもサポートしています。CPIO/CPGZ はテープストリーマーなどにデータをバックアップするための形式で、CPIO の方は tar のように複数のファイルをひとまとめにするもの(無圧縮)、CPGZ はその CPIO に圧縮をかけたものです。

Finder やアクションメニュー、コンテクストメニューから“アーカイブを作成”を選択すると、BAH は

ditto -c -k -rsrc [元ファイル/フォルダのパス] [圧縮後のファイル/フォルダのパス]
を実行し、その結果 Zip 形式アーカイブが作成されます。ただし“-rsrc”オプションに注意。つまり作成されたアーカイブでは、Mac 特有のリソースフォークも保持されているのです。Windows ユーザに渡すアーカイブを作成するなら、あらかじめファイルのリソースフォークを削除しておいた方がよいでしょう(もっと言えば、Mac OS 9 ユーザに渡すアーカイブを作成する際にも、やはりリソースフォークは削除した方がいいようです)。

また、BAH に直接ファイルやフォルダをドラッグ&ドロップすると、CPGZ 形式アーカイブが作成されます。これはつまり

ditto -c -z -rsrc [元ファイル/フォルダのパス] [圧縮後のファイル/フォルダのパス]
の実行結果と同様です。こちらも“-rsrc”オプションが指定されています。

なぜ BAH が上記のように 2 種類の異なる動作をする仕様になっているのか、また BAH を使った CPIO アーカイブの作成方法については、正直わかりません(後者に関しては、アーカイブの認識と展開は出来るが、作成は出来ないのかも)。しかし、CPIO/CPGZ アーカイブは StuffIt Expander では展開できませんし、一般ユーザが敢えてこれらの形式を使う意味はほとんどないと思われます。

Posted by E-WA at 2003年11月18日 09:35 | トラックバック (0)
コメント