Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 打印xattr十六进制输出的字符串表示形式_Macos_Formatting_Xattr - Fatal编程技术网

Macos 打印xattr十六进制输出的字符串表示形式

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从Safari在OS X上下载的磁盘图像中提取原始下载URL,这样我就可以重命名它们,但仍然可以轻松地获取它们的原始名称以供参考

此命令打印从中下载给定文件的URL的十六进制表示形式,例如:

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