Macos 打印xattr十六进制输出的字符串表示形式
我正在尝试编写一个脚本,使用xattr从Safari在OS X上下载的磁盘图像中提取原始下载URL,这样我就可以重命名它们,但仍然可以轻松地获取它们的原始名称以供参考 此命令打印从中下载给定文件的URL的十六进制表示形式,例如:Macos 打印xattr十六进制输出的字符串表示形式,macos,formatting,xattr,Macos,Formatting,Xattr,我正在尝试编写一个脚本,使用xattr从Safari在OS X上下载的磁盘图像中提取原始下载URL,这样我就可以重命名它们,但仍然可以轻松地获取它们的原始名称以供参考 此命令打印从中下载给定文件的URL的十六进制表示形式,例如: xattr -p com.apple.metadata:kMDItemWhereFroms *.dmg 给予 URL从第14个字节开始(如果我计算正确的话),以NULL结尾。如何格式化此字符串,以便获得如下字符串输出: (别担心,除非您登录到ADC,否则此链接不起作
xattr -p com.apple.metadata:kMDItemWhereFroms *.dmg
给予
URL从第14个字节开始(如果我计算正确的话),以NULL结尾。如何格式化此字符串,以便获得如下字符串输出:
(别担心,除非您登录到ADC,否则此链接不起作用)
…本质上,Finder将在Get Info中显示相同的内容。我尝试将xattr的输出管道化到xxd,但我不确定如何指定偏移量,以便字符串从正确的位置开始。因此,在查看xattr-p返回的二进制数据后,我意识到它实际上是一个二进制plist。。。因此,“bplist”位于数据的前面。出于某种原因,我以前没有注意到这一点,但鉴于此,这里有一个合适的解决方案,应该适用于从10.5到10.8的每个OSX 为了避免重复,我将链接到源,而不是粘贴它:
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