結論から言う
消していい。というか消して。
あなたには関係ないMac専用のゴミフォルダだ。
__MACOSXとは何者か
┌─────────────────────────────────────────────────────────┐
│ │
│ 【正体】 │
│ macOS固有のメタデータ(リソースフォーク)を │
│ 格納するためのフォルダ │
│ │
│ 【中身】 │
│ ・Finderの表示設定 │
│ ・ファイルのアイコン情報 │
│ ・作成者情報 │
│ ・その他macOSでしか使わない付随情報 │
│ │
│ 【重要】 │
│ Windows/Linuxユーザーには完全に無意味。 │
│ 削除しても元のファイルには一切影響なし。 │
│ │
└─────────────────────────────────────────────────────────┘
なぜ勝手に入ってくるのか
【Macユーザーがやっていること】
Finderで右クリック → 「"○○"を圧縮」
↓
macOS「リソースフォークも入れとくね!」
↓
__MACOSXフォルダが自動生成される
↓
Macユーザー「(気づいていない)」
↓
あなた「なんだこのゴミフォルダは…」
つまり、Macユーザーは悪気があるわけではない。 macOSのデフォルト圧縮機能が勝手にやっている。
リソースフォークって何?
┌─────────────────────────────────────────────────────────┐
│ │
│ 【Macのファイル構造(歴史的経緯)】 │
│ │
│ Macのファイルシステム(HFS+/APFS)では、 │
│ 1つのファイルが2つの「フォーク」を持つ: │
│ │
│ ┌────────────────────────────────────┐ │
│ │ ファイル名.jpg │ │
│ ├────────────────────────────────────┤ │
│ │ データフォーク │ ← 本体 │
│ │ (実際の画像データ) │ │
│ ├────────────────────────────────────┤ │
│ │ リソースフォーク │ ← 付随情報 │
│ │ (アイコン、メタデータなど) │ │
│ └────────────────────────────────────┘ │
│ │
│ Classic Mac OS(Mac OS 9以前)時代の遺産。 │
│ 今でもmacOSはこの構造を引きずっている。 │
│ │
└─────────────────────────────────────────────────────────┘
ZIPはこの「リソースフォーク」を直接保存できない。だからmacOSは __MACOSX フォルダを作って、そこにリソースフォークを退避させる。
ZIPを展開すると出てくる謎ファイルたち
展開後のフォルダ構造
project/
├── index.html
├── style.css
├── image.png
├── .DS_Store ← これも謎ファイル
└── __MACOSX/ ← これ
├── ._index.html
├── ._style.css
└── ._image.png
| ファイル/フォルダ | 正体 | 削除OK? |
|---|---|---|
__MACOSX/ |
リソースフォーク格納フォルダ | 削除OK |
._ファイル名 |
各ファイルのリソースフォーク | 削除OK |
.DS_Store |
Finderの表示設定 | 削除OK |
全部消してOK。 本体のファイル(index.html、style.css、image.png)には影響しない。
削除方法
Windows の場合
普通にフォルダを削除するだけ。
1. __MACOSX フォルダを選択
2. Delete キーを押す
3. 完了
Linux / Mac の場合
# __MACOSX フォルダを削除
rm -rf __MACOSX
# .DS_Store も消したい場合
find . -name '.DS_Store' -delete
# ._ で始まるファイルも消したい場合
find . -name '._*' -delete
Python で処理する場合
import os
import shutil
def remove_macosx_junk(directory):
"""__MACOSXとMac特有のゴミファイルを削除"""
for root, dirs, files in os.walk(directory, topdown=False):
# __MACOSX フォルダを削除
if '__MACOSX' in dirs:
shutil.rmtree(os.path.join(root, '__MACOSX'))
# .DS_Store と ._ ファイルを削除
for file in files:
if file == '.DS_Store' or file.startswith('._'):
os.remove(os.path.join(root, file))
ZIPを展開せずに中身から除外(unzip)
# __MACOSX と .DS_Store を除外して展開
unzip archive.zip -x '__MACOSX/*' '*.DS_Store'
なぜMacユーザーは気づかないのか
┌─────────────────────────────────────────────────────────┐
│ │
│ 【macOSでは見えない】 │
│ │
│ macOSのFinderは __MACOSX を「不可視フォルダ」として │
│ 扱うため、Macユーザーの画面には表示されない。 │
│ │
│ .DS_Store や ._ ファイルも同様に不可視。 │
│ │
│ Macユーザー「きれいなZIP送ったよ!」 │
│ Windowsユーザー「ゴミだらけなんだけど…」 │
│ │
│ この認識のズレが悲劇を生む。 │
│ │
└─────────────────────────────────────────────────────────┘
Macユーザーへのお願い(これを見せてあげて)
┌─────────────────────────────────────────────────────────┐
│ │
│ 【Macユーザーの皆さんへ】 │
│ │
│ Finderの「圧縮」機能を使うと、 │
│ __MACOSX フォルダが自動的に含まれます。 │
│ │
│ Windows/Linuxユーザーに送るときは、 │
│ 以下の方法でクリーンなZIPを作ってください。 │
│ │
└─────────────────────────────────────────────────────────┘
方法1: ターミナルで圧縮(推奨)
# デスクトップに移動
cd ~/Desktop
# クリーンなZIPを作成(__MACOSX なし)
zip -r archive.zip target_folder -x '*.DS_Store' -x '__MACOSX/*'
ターミナルの zip コマンドはリソースフォークを含めない。
方法2: 専用アプリを使う
- Keka(有料だが高機能)
- ZIPANG(無料)
- WinArchiver Lite(無料)
これらのアプリは __MACOSX を含まないZIPを作成できる。
方法3: ショートカットAppでカスタム圧縮
macOS Monterey以降なら「ショートカット」Appで、クリーンなZIP圧縮をFinderの右クリックメニューに追加できる。
実害はあるのか
┌─────────────────────────────────────────────────────────┐
│ │
│ 【実害1】単純に邪魔 │
│ └ フォルダ構造が汚くなる │
│ │
│ 【実害2】ファイル検索で誤検出 │
│ └ `find -name "index.html"` で │
│ `__MACOSX/._index.html` もヒットしてしまう │
│ │
│ 【実害3】容量の無駄 │
│ └ 通常は小さいが、稀に30%も占めることがある │
│ │
│ 【実害4】プログラムの誤動作 │
│ └ ファイル一覧を取得する処理で予期しないファイルが混入│
│ │
│ 【実害5】プロフェッショナルとして微妙 │
│ └ 納品物にゴミが入っているのは印象が悪い │
│ │
└─────────────────────────────────────────────────────────┘
よくある質問
Q. 削除して大丈夫?本当に?
A. 大丈夫。 リソースフォークはmacOS専用の付随情報であり、ファイルの本体(データフォーク)には含まれていない。Windowsで使う分には完全に不要。
Q. Macユーザーに送り返すときは残すべき?
A. 残さなくてOK。 現代のmacOSアプリは、リソースフォークがなくても正常に動作する。Classic Mac OS(Mac OS 9以前)の遺産であり、今となっては形骸化している。
Q. 毎回手動で消すのが面倒
A. 自動化しよう。 上記のPythonスクリプトや、unzipの除外オプションを使えば楽になる。
Q. Macユーザーとして恥ずかしい
A. 今日から改善すればOK。 ターミナルの zip コマンドか、専用アプリを使おう。
まとめ
| 項目 | 内容 |
|---|---|
| 正体 | macOSのリソースフォーク(付随情報) |
| 原因 | Finderの標準圧縮機能が自動生成 |
| 削除 | OK、むしろ削除推奨 |
| 影響 | 元ファイルに影響なし |
| 対策 | Macユーザーがターミナルか専用アプリで圧縮 |
語呂合わせ
「マックオーエスエックス、マックだけ、消してOK」
__MACOSX はMac専用、それ以外の人は消してよし。
おまけ:.DS_Store とは
┌─────────────────────────────────────────────────────────┐
│ │
│ 【.DS_Store】 │
│ │
│ Desktop Services Store の略。 │
│ │
│ Finderがフォルダごとに作成する設定ファイル: │
│ ・アイコンの表示位置 │
│ ・表示形式(リスト/アイコン/カラム) │
│ ・ウィンドウサイズ │
│ ・背景色 │
│ │
│ これもWindows/Linuxには完全に無意味。削除OK。 │
│ │
└─────────────────────────────────────────────────────────┘
「何これ」シリーズ、お役に立てたらフォローお願いします!