我正在尝试编写一个脚本来从使用 xattr 在 OS X 上通过 Safari 下载的磁盘映像中提取原始下载 URL,以便我可以重命名它们,但仍然可以轻松获取它们的原始名称以供参考。
此命令打印下载给定文件的 URL 的十六进制表示,例如:
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 将在“获取信息”中显示相同的内容。我尝试将 xattr 的输出通过管道传输到 xxd,但我不确定如何指定偏移量,以便字符串从正确的位置开始。