このページの本文へ

前へ 1 2 次へ

Apple Geeks 第174回

OS X El Capitan時代の書庫ファイル活用術

2016年02月11日 10時00分更新

文● 海上忍(@u_shinobu)、編集●ハイサイ比嘉

  • この記事をはてなブックマークに追加
  • 本文印刷

OS標準の機能で「他OS向けZIP」をつくる

 MacのZIP対応において問題があるとすれば、「Mac独自の部分」の扱いだろう。OS Xで作成したZIPには、リソースフォークやメタデータまでもが収録されてしまい、Windowsなど他のOSで展開するときに混乱を招きかねない。OS Xにおいてリソースフォークは有用だが、他のOSではまったく無用の長物だ。

 ファインダの機能でZIPを作成すると、ファイル本体(データフォーク)以外のファイルリソースは名前の先頭が「._」で始まる「AppleDouble Headerファイル」として分離され、「__MACOSX」というフォルダに保存される。Macで作成したZIPをWindowsユーザーの知人に渡したとき、「このフォルダは何?」という質問を受けたことのあるユーザーも多いことだろう。

Macで作成したZIP書庫を他のOSで開くと、高確率で「__MACOSX」フォルダが現れる

 これを取り除くサードパーティー製アプリケーションもあるが、利便性も考えれば使わないに越したことはなく、OS標準の機能を使う対処法を知っていたほうが心強い。

 その対処法とは、ターミナルで「zip」コマンドを実行することだ。通常の方法でZIP書庫を作成し(ファインダの「○○○を圧縮」メニューを使えばいい)、その後ターミナルを起動、以下のとおりコマンドを入力して引数に対象のZIPファイルを指定し、行末に「"*__MACOSX*"」を入力すればOK。ファイル名の入力が面倒な場合は、ターミナルにZIPファイルをドラッグ&ドロップし、その後「"*__MACOSX*"」と入力すればいいだろう。


$ zip --delete [ファイル名] "*__MACOSX*"

「__MACOSX」フォルダはzipコマンドで取り除ける

 なお、ZIP書庫にはファインダ情報が記録されたOS X独自の不可視属性ファイル「.DS_Store」も混入されがちなため、併せて取り除いたほうがいい。だから、前述のコマンドラインは以下のとおり実行したほうがベターだ。


$ zip --delete [ファイル名] "*__MACOSX*" "*.DS_Store"

 ターミナルの利用はまだしも、毎回「"*__MACOSX*" "*.DS_Store"」などと入力するのは我慢できないという場合は、以下のとおりbashのログインスクリプトに関数を定義しよう。以下のリストを「~/.bashrc」に追加し、ターミナルまたはシェルを起動し直せば、「undot」に続けてZIPファイルを指定するだけでAppleDouble Headerファイルと「.DS_Store」を一気に取り除ける。なかなか実用的と思うが、いかがだろう?


function undot(){
/usr/bin/zip --delete $@  "*__MACOSX*" "*.DS_Store"
}

undotコマンド(実体はbashの関数)を使い「__MACOSX」と「.DS_Store」を一気に取り除いた


前へ 1 2 次へ

カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中