healthy diet

「__MACOSX」の意味は? いま敢えて「zip」を見直す

書き上がった原稿を消してしまいました! そんなときにかぎって、ローカルスナップショット機能を無効化していたという……思い出しながら書き直そうかとも思いましたが、さすがにヤル気が出ません。というわけで、急遽第31回に予定していた内容に差し替えました。幻の第30回、そのうち気が向いたら書くことにします。トホホ。

さて、今回は「zip」について。そんな使い古されたネタをなぜ投入する? と訝しむ声も聞こえてくるようだが、Appleの勢いもあり他プラットフォームからの移住者が後を絶たない現在、需要があるトピックだと認識している。これまで"なんとなく理解していたつもり"の部分を、この際一掃してみては?

「__MACOSX」の意味

OS XのFinderには、専用アーカイバ(BOMArchiveHelper.app)と連携する機能があり、コンテキストメニューから「~を圧縮」メニューを実行すると、そのとき選択しているファイルが圧縮された「アーカイブ.zip」が生成される。展開(解凍)はさらにかんたんで、ダブルクリックするだけだ。

いまでは当然のように利用されている機能だが、OS X 10.3(Panther)以前はそうもいかなかった。旧Mac OS以来利用されてきた、ファイル付属の独自情報をうまく扱う方法がなかったからだ。

Mac OSでは、ファイル本体(データフォーク)のほかに、さまざまなデータを格納できる「リソースフォーク」という部分を伴う。さらに、ファイルを作成/変更/アクセスした日時やコメント、Finder情報などのデータをまとめた「メタデータ」があり、これらが揃ってはじめてFinder上の"ファイル"を再現できる。

しかし、リソースフォークとメタデータはOS X/Finder独自のリソースであり、他のOSでは必要とされない。Appleは、ファイルをデータフォークとそれ以外に2分割するデータフォーマット「AppleDouble」を用意し、OS Xで利用するときには両方を、それ以外の環境で利用するときにはデータフォークとの違いがわかるよう、Finderやアーカイバを整備したのだ。

OS Xで作成したZIPファイルをWindowsで解凍すると、ファイル以外に「__MACOSX」というフォルダが作成される。このフォルダの内容物こそが、AppleDoubleのデータフォーク以外の部分(リソースフォーク+メタデータ)というわけだ。

つまり、「__MACOSX」フォルダはOS Xユーザ以外には関係ない。同じくデータフォーク以外の部分が格納される、先頭が「._」から始まるファイル(AppleDouble Header)も、他のOSでは参照されない。これはなに? とWindowsユーザから質問を受けた場合には、君のところには関係ないから削除してOK、とハッキリ答えよう。

現在のFinderには、かんたんにZIPアーカイブを作成できる機能が用意されているが……

Finder(BOMArchiveHelper)で作成したZIPアーカイブを他のOSで開くと、ほぼ確実に「__MACOSX」フォルダが含まれてしまう

余計な「__MACOSX」を含めないために

しかし、前述した内容はOS Xユーザ側の都合だ。これなんだっけ? と毎回聞いてくる人もいるだろうし(筆者の周囲にも存在する)、余計なモノをつけてくるな! という人もいるだろう。確かに、相手が必要とするものだけを渡すほうが、マナーとしては正しい。

リソースフォークやメタデータを省いてZIPアーカイブを作成するには、Terminalから「zip」コマンドを使うことが近道だ。用法は単純、最初の引数に生成するアーカイブ名(*.zip)を、以降の引数に圧縮対象のファイル/フォルダ名を列挙すればいい。こうして作成したZIPアーカイブは、Windows上で展開しても「__MACOSX」フォルダが現れないはずだ。

ちなみに、tarコマンドでアーカイブ(*.tar.gz/*.tgz)を作成するときは要注意。リソースフォーク/メタデータ付きのファイルを対象にすると、「__MACOSX」フォルダは作成されないものの、AppleDouble Headerは作成されてしまうのだ。気になる場合には、ZIPアーカイブを選択しよう。

$ zip sample.zip file1.png file2.png

このように、zipコマンドで作成したアーカイブには「__MACOSX」フォルダが含まれない

これで「__MACOSX問題」は解決するが、「.DS_Store問題」もお忘れなきよう。フォルダ上のアイコンの位置などが記録されるこのファイルも、他のOSのユーザには無関係で、開けないのはなにか問題が……などと余計な心配をさせてしまう存在だ。

前述したように、圧縮対象がファイルのみの場合は問題ないが、フォルダを対象にすると、必ずといっていいほど「.DS_Store」がアーカイブに混入してしまう。だから、zipコマンドを実行する前に、以下のコマンドを実行し、カレントディレクトリ以下の「.DS_Store」を一括削除しておこう。findとxargsコマンドに関する詳細は本連載の第28回で紹介しているので、そちらもあわせて参照していただきたい。

$ find . -name '.DS_Store' -print0 | xargs -0 rm$ zip -r sample.zip file1.png file2.png picfolder
関連記事
【コラム】新・OS X ハッキング! (28) 年末特別企画:ホームフォルダを大掃除(2011年12月26日)
【レビュー】NTFSを高速に読み書きできる「Paragon NTFS for Mac OS X 9」(2011年9月23日)
【コラム】新・OS X ハッキング! Lion直前だからこそ、スマートにHDDを健康診断する(2011年6月24日)
【コラム】OS X ハッキング! 第333回 Snow Leopardまで秒読み、だからこそ「Time Machine」でバックアップ(2009年8月24日)
【コラム】OS X ハッキング! 第229回 S.M.A.R.T.にHDDの寿命を監視する(2007年6月8日)

ホット記事

iPhoneやパソコンでWebサイトをPDFで保存する方法 | Business Insider Japan

iPhoneやパソコンでWebサイトをPDFで保存する方法 | Business Insider Japan

無料のメールマガジンに登録平日17時にBusiness Insider Japanのメルマガをお届け。利用規約を確認iPhoneのSafariを含め各種ウェブブラウザーから、ウェブサイトをPDFとして保存できる。撮影:今村拓馬Webページは突...

続きを読む 続きを読む
Yahoo!ニュース 伝統の「小紋染め」紋様をデジタル化へ 消滅危機、老舗社長の挑戦

Yahoo!ニュース 伝統の「小紋染め」紋様をデジタル化へ 消滅危機、老舗社長の挑戦

富田篤さんが広げる手前のファイルには、保存状態の良い型紙をできるだけ空気に触れさせないよう入れている。デジタル化に備えて、劣化を防ぐためだ=東京都新宿区の富田染工芸で2021年12月10日午前、近藤浩之撮影 ...

続きを読む 続きを読む
ニュース 録画忘れでも大丈夫!オリンピックの名場面をスマホであとから見る方法

ニュース 録画忘れでも大丈夫!オリンピックの名場面をスマホであとから見る方法

アーカイブ配信の利用方法を解説選手のプレーはもちろん、ユニークな解説などでも注目が集まる東京オリンピック。話題になったのに見逃してしまったり、録画していなかったりした場合でも、あとから好きなタイミング...

続きを読む 続きを読む

関連記事