defaults -currenthost read ~/library/preferences/byhost/com.apple.colorsync.display.* | grep "deviceid|profilepath"可直接获取当前显示器绑定的icc文件绝对路径,若返回为空则表示使用内置默认配置。

Mac终端中查看显示器当前绑定的色彩描述文件路径,需绕过图形界面直接读取系统配置数据库,不能仅靠 ls 或 find 粗略扫描;错误路径或未加载的 ICC 文件不会被系统识别,必须查实际生效的绑定关系。
用 defaults 命令查当前显示器绑定的描述文件绝对路径
打开终端,执行以下命令:
defaults -currentHost read ~/Library/Preferences/ByHost/com.apple.colorsync.display.* | grep "DeviceID\|ProfilePath"
这条命令会列出所有已连接显示器的 DeviceID 和对应 ProfilePath。ProfilePath 的值就是当前生效的 .icc 文件完整路径,例如 /Library/ColorSync/Profiles/AdobeRGB1998.icc。
【注意:若返回为空或报错“Domain … does not exist”,说明该显示器尚未手动指定描述文件,系统正使用内置默认配置(无对应磁盘文件)】
用 ioreg + awk 提取活跃显示器的 ColorSync 配置路径
方法一:获取主显示器的设备标识并定位其描述文件
首先运行:ioreg -lw0 | grep -i "IODisplayEDID\|DisplayProductID" | head -2
记下输出中的 DisplayProductID 值(如 0x3a02),这是硬件级唯一标识。
接着执行:ls /Library/ColorSync/Profiles/ | grep -i "$DISPLAY_PRODUCT_ID" —— 这步不保证成功,因为文件名通常不包含 ProductID。
更可靠的做法是跳过文件名匹配,直接查系统注册表:
defaults read /Library/Preferences/com.apple.colorsync.devices | grep -A 5 "DisplayProductID.*0x$(printf "%x" $(echo "0x3a02" | bc))"
这行命令需将上一步得到的十六进制 ProductID 替换进末尾,它会返回该显示器关联的 ProfilePath 字段值。
用 system_profiler 快速确认已加载的描述文件名
system_profiler SPDisplaysDataType | grep -A 5 "ColorSync Profile"
该命令输出中,“ColorSync Profile”后紧跟着的就是当前显示器正在使用的描述文件名(不含路径)。
拿到文件名后,按顺序检查两个标准位置:
① 先查用户级路径:ls ~/Library/ColorSync/Profiles/"文件名.icc" 2>/dev/null
② 再查系统级路径:ls /Library/ColorSync/Profiles/"文件名.icc" 2>/dev/null
只要任一命令返回有效路径,即为当前实际加载的完整路径。两处都不存在则说明该描述文件已被移除但系统缓存未刷新,需重启或运行 sudo killall -HUP ColorSyncHelper 强制重载。











