xattrを使用してOSX上のSafariでダウンロードしたディスクイメージから元のダウンロードURLを抽出するスクリプトを作成しようとしています。これにより、名前を変更しながら、参照用に元の名前を簡単に取得できます。
このコマンドは、例として、指定されたファイルがダウンロードされたURLの16進表現を出力します。
xattr -p com.apple.metadata:kMDItemWhereFroms *.dmg
与える
62 70 6C 69 73 74 30 30 A1 01 5F 10 4F 68 74 74
70 3A 2F 2F 61 64 63 64 6F 77 6E 6C 6F 61 64 2E
61 70 70 6C 65 2E 63 6F 6D 2F 4D 61 63 5F 4F 53
5F 58 2F 6D 61 63 5F 6F 73 5F 78 5F 31 30 2E 36
2E 31 5F 62 75 69 6C 64 5F 31 30 62 35 30 34 2F
30 34 31 35 30 37 33 61 2E 64 6D 67 08 0A 00 00
00 00 00 00 01 01 00 00 00 00 00 00 00 02 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 5C
URLは14バイト目(正しくカウントした場合)から始まり、NULLで終了します。次のように文字列出力を取得するように、この文字列をフォーマットするにはどうすればよいですか。
http://adcdownload.apple.com/Mac_OS_X/mac_os_x_10.6.1_build_10b504/0415073a.dmg
(心配しないでください。ADCにログインしていない限り、このリンクは機能しません)
...基本的に、FinderがGetInfoに表示するのと同じものです。xattrの出力をxxdにパイプしてみましたが、文字列が正しい場所から始まるようにオフセットを指定する方法がわかりません。