Macを経由でデータを受け取ると、そのストレージ上にはMacOSによって生成された「メタファイル」(フォルダもある)を目にすることがあるが、MacOS上では隠し属性で見えないが、他のOSからだと見える。
これらのデータは、MacOSがファイルたフォルダ、さらにはストレージに対して様々な情報や設定を保持するために生成されるが、Windwosに対しては不要であったり、Linuxはディストリビューションによっては、不要に影響を与えることもあるため、受け渡し時には削除することが推奨されている。
今回は、MacOS上でzipファイルを作成するときの、不要なデータを除外する方法を解説する。
除外方法
まず、除外の文法については「zip unzip(圧縮解凍)」を参照のこと。
さて、ここでよく見かけるMacOS特有のデータをまとめる。
- .Spotlight-V100
- スポットライト(検索)のインデックス。
- .fseventsd
- ファイルシステムイベントのログファイル。
- .Trashes
- ストレージ毎の「ゴミ箱」。
- .DS_Store
- 主にアクセスされたフォルダ内に対して生成されるメタ情報。
- ._(ファイル名)
- Mac標準ファイルシステム「HFS+」以外でファイル毎に対して生成されるメタ情報、対象のファイル名に「._」というプレフィックスがつく。
上記のことを踏まえて、除外オプションの記述は以下の通り。
# zip <オプション> <ファイル圧縮名> <圧縮元のファイル> -x “.*” “.*/*”
除外にはワイルカードを使用し、「.*」=「”.”で始まるファイル名を除外」、「.*/*」=「”.”で始まるフォルダを除外」となる。
注意点として、Linuxでもそうだが”.”で始まる項目は隠しファイル(フォルダ)属性を帯びるので、意図的にそのような名前の項目を含めたい場合はこの例ではない。
既存のzipファイルから対象のデータを除外する場合
すでに圧縮されたアーカイブから、除外する方法があるので、一応解説しておく。
# zip -d <ファイル圧縮名.zip> “.*” “.*/*” “__MACOSX/*”
MacOSで標準の圧縮ソフトを利用したアーカイブには「__MACOSX」というフォルダが生成されるが、これも不要なデータなので追加で除外する。
以上