テック & ツール
__MACOSXフォルダとは?Windowsで表示される原因と対策
Macで作ったZIPをWindowsで開くと、__MACOSX や ._ という見慣れない名前が出ることがあります。送った側の画面では見えていなかった分、受け取った側も送り手側も戸惑いやすいポイントです。
Windowsユーザーからすると、頼んでもいない謎のフォルダが入っているため、「圧縮ミスかな?」「怪しいものかな?」と不安にさせてしまいます。
__MACOSX フォルダの正体
この不思議な名前のフォルダには、「リソースフォーク」と呼ばれるMac特有の補足データが格納されています。
また、ファイル名の先頭に ._ がつくファイル(AppleDoubleファイル)も同様の理由で生成されます。これらは .DS_Store と並んで、Windowsユーザーを混乱させる代表的な不要ファイルです。
Macのファイルシステム(HFS+やAPFS)では、ファイルは「データフォーク(中身)」と「リソースフォーク(属性情報)」の2つで構成されることがあります。
- データフォーク: テキストや画像そのもののデータ
- リソースフォーク: アイコン画像、ウィンドウ位置、タグ情報など
Mac内ではこれらは1つのファイルとして扱われますが、Windowsなどの他のシステム(FAT32など)ではリソースフォークを扱えません。
そのため、Macの標準圧縮機能は、このリソースフォークを失わないように「__MACOSX」という別フォルダを作って退避させる仕様になっているのです。
Windows側では何が起きるのか
Macにとっては「属性情報を逃がしているだけ」ですが、Windows側では意味の分からない別ファイルとして見えます。
解凍後のフォルダに本来のデータと関係ない名前が混ざるので、「どれが本物か分かりにくい」「このファイルは触っていいのか分からない」という状態になりやすいです。
どう防ぐか
Finderの右クリック「圧縮」を使うかぎり、このフォルダを出さない設定はありません。共有前は別の手順で ZIP を作るしかありません。
コマンドラインでの解決策
ターミナルで zip コマンドを使う場合、-X (eXclude eXtra file attributes) オプションを付けることで、リソースフォークを含めずに圧縮できます。
zip -r -X output.zip target_folder
これで多くのリソースフォークは除外されますが、「既に作られてしまっている ._ ファイル」までは消えないことがあります。その場合は、先に紹介した find . -name "._*" -delete なども一緒に使います。
確認方法
zipinfo output.zip | grep __MACOSX 何も表示されなければ、きれいに除去できています。
毎回同じ手順で作りたい場合
zip -X と不要ファイル削除、最後の確認を毎回同じ並びで回すなら、その前処理をひとつにしておくと、削除から ZIP 作成まで同じ順で進められます。
Pon!とZip! では、その順番で ZIP を作れます。
__MACOSX は送る前に残さない
__MACOSX は壊れたフォルダではなく、Mac側の属性情報を退避した結果です。
ただし、受け取り側には意味が伝わりません。共有先がWindowsなら、ZIPの中にこうしたファイルが残っていないかを一度見てから送ったほうが、解凍直後の画面がすっきりします。