Mac OS X 資料一覧
HFS Plus:リソースフォーク管理
2008/2/7更新
対応バージョン: 10.5(Leopard)
リソースフォーク格納場所
リソースフォークはFinderからは見えないようになっているが、com.apple.ResourceForkというEA(Extended Attribute)として存在する。
例えばWebサイトのURLを表すwebloc(Webインターネットロケーション)ファイルの場合、以下のように2つのEAが内包されている。
% ls -l@ Apple.webloc -rw-r--r--@ 1 foo staff 0 2 5 16:11 Apple.webloc com.apple.ResourceFork 545 com.apple.quarantine 42
リソースフォークは実際にファイルとしてアクセスすることもできる。
<ファイル>/rsrc あるいは <ファイル>/..namedfork/rsrc
リソースフォーク内容参照
リソースフォークファイルはプレーンテキストではないので内容を参照するにはDeRezコマンドを使用する。
ファイルの種類によって様々なデータが格納されるが、前述のweblocファイルの場合リソースフォーク内にURLが格納されている。
% DeRez Apple.webloc data 'drag' (128, "Apple.webloc") { $"0000 0001 0000 0000 0000 0000 0000 0003" /* ................ */ $"5445 5854 0000 0100 0000 0000 0000 0000" /* TEXT............ */ $"7572 6C20 0000 0100 0000 0000 0000 0000" /* url ............ */ $"7572 6C6E 0000 0100 0000 0000 0000 0000" /* urln............ */ }; data 'url ' (256, "Apple.webloc") { $"6874 7470 3A2F 2F77 7777 2E61 7070 6C65" /* http://www.apple */ $"2E63 6F6D 2F" /* .com/ */ }; data 'TEXT' (256, "Apple.webloc") { $"6874 7470 3A2F 2F77 7777 2E61 7070 6C65" /* http://www.apple */ $"2E63 6F6D 2F" /* .com/ */ }; data 'urln' (256, "Apple.webloc") { $"4170 706C 65" /* Apple */ };
リソースフォーク削除
リソースフォークを全て削除するにはxattr -dを使用する。
% xattr -d com.apple.ResourceFork <ファイル>
リソースフォークから任意のデータを削除するには以下の手順で行う。
まずDeRezコマンドでリソースフォークから不要なデータを削除したテキストファイルを作成
% DeRez -skip '<キー>' foo > foo.tmp
次にRezコマンドで上記ファイルからリソースフォークを作成
% Rez foo.tmp -o foo.rsrc
作成されたリソースフォークをオリジナルと入れ替える
% cp foo.rsrc/rsrc foo/rsrc