tar
tarとは
リソースフォークの取り扱い
OS X上のファイルは、一般的にデータフォークとリソースフォークの2種類から構成される。前者はLinuxやWindowsでも取り扱えるが、後者はMacでしか取り扱う事ができない。例えば、カスタムアイコンの情報などがこれに相当する。
OS Xのtarでは、このリソースフォークを元々処理できなかったが、Tiger以降では処理できるようになった。
例えばリソースフォークを含むfoo.jpgとbar.jpgをtarでまとめたいとき、
$ tar cvf hoge.tar foo.jpg bar.jpg ._foo.jpg foo.jpg ._bar.jpg bar.jpg
を実行するとリソースフォークを含んだhoge.tarが出来上がる。._foo.jpgと._bar.jpgは、それぞれリソースフォーク部分であり、Mac以外のOSでhoge.tarを展開すると、これら._で始まるファイルも展開される事になる。これらのファイルはMac以外のOSでは不要なものである。
しかし、Tigerでは"COPY_EXTENDED_ATTRIBUTES_DISABLE"、Leopardでは"COPYFILE_DISABLE"という環境変数を設定してやる事で、以下のように
$ COPY_EXTENDED_ATTRIBUTES_DISABLE=1 tar cvf hoge.tar foo.jpg bar.jpg foo.jpg bar.jpg
._で始まるファイルの含まれないtarファイルを作成する事が可能になる。他のOSにファイルを配布する場合は、このように不要なフォークを削除することが望ましい。
また.DS_Store?が存在する場合もあるので、他環境への配布などの場合、これらも削除するのが望ましい。
$ tar cvzf dir.tar.gz dir --exclude .DS_Store dir/ dir/foo.jpg dir/bar.jpg
とすれば、.DS_Store?を含めずにアーカイブすることができる。この方法は、深いディレクトリに.DS_Store?がある場合にも有効である。
Last Updated: 2008-11-24