You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Bash/Zsh脚本从文件xattr提取生成ICNS图标?

从文件扩展属性自动提取ICNS图标

直接通过命令链完成十六进制到二进制ICNS文件的转换,无需手动操作十六进制编辑器:

# 提取资源分支十六进制,定位ICNS魔数后转二进制输出为icon.icns
xattr -px com.apple.ResourceFork "file" | grep -o "69 63 6E 73.*" | xxd -r -p > icon.icns

分步解释:

  • xattr -px com.apple.ResourceFork "file":以十六进制格式输出目标文件的com.apple.ResourceFork扩展属性内容
  • grep -o "69 63 6E 73.*":匹配并提取从ICNS魔数69 63 6E 73开始的所有十六进制内容(自动保留魔数,无需手动补回)
  • xxd -r -p:将纯十六进制文本转换为二进制数据(-r表示反向转换,-p表示忽略行格式)
  • > icon.icns:将二进制数据写入目标ICNS文件

如果要兼容你之前的变量处理逻辑,也可以写成:

var="$(xattr -px com.apple.ResourceFork "file")"
var="69 63 6E 73${var#*69 63 6E 73}"
echo "$var" | xxd -r -p > icon.icns

这样生成的icon.icns就是直接可用的二进制图标文件,无需额外手动操作。

内容的提问来源于stack exchange,提问作者asamahy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 12:39:24