1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Macユーザーから送られてきたZIPの謎「__MACOSX」に迫る ~何これ、消していい?~

1
Posted at

結論から言う

消していい。というか消して。

あなたには関係ない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。         │
│                                                         │
└─────────────────────────────────────────────────────────┘

「何これ」シリーズ、お役に立てたらフォローお願いします!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?