OS Sequoia 15.1下用zsh脚本设置/修改文件颜色标签的方法
macOS Sequoia 15.1下用脚本设置/修改文件颜色标签的方法
一、修复osascript的报错问题
你之前的命令存在语法问题,touch和osascript是两个独立命令,需要分开执行:
touch "/Users/xxxxxx/test_file.txt" osascript -e 'tell application "Finder" to set label index of POSIX file "/Users/xxxxxx/test_file.txt" to 2'
即使命令正确,OS Sequoia的隐私权限管控也可能导致报错,解决步骤:
- 打开「系统设置」→「隐私与安全性」→「完全磁盘访问权限」
- 找到你使用的终端(比如Terminal或iTerm2),勾选允许权限
- 重启终端后重试
如果仍有问题,改用System Events操作,其权限要求更宽松:
osascript -e 'tell application "System Events" to set label index of file POSIX file "/Users/xxxxxx/test_file.txt" to 2'
标签索引对应颜色:
- 0: 无标签
- 1: 灰色
- 2: 橙色
- 3: 绿色
- 4: 蓝色
- 5: 紫色
- 6: 红色
- 7: 黄色
要修改标签(比如将绿色改为红色),直接替换索引值即可:
osascript -e 'tell application "System Events" to set label index of file POSIX file "/Users/xxxxxx/test_file.txt" to 6'
二、无需osascript的替代方法
1. 用xattr直接操作扩展属性
macOS的颜色标签存储在文件的扩展属性com.apple.metadata:_kMDItemUserTags中,可直接用xattr读写:
- 设置红色标签:
xattr -w com.apple.metadata:_kMDItemUserTags '("<string>Red</string>")' "/Users/xxxxxx/test_file.txt"
- 替换为绿色标签:
xattr -w com.apple.metadata:_kMDItemUserTags '("<string>Green</string>")' "/Users/xxxxxx/test_file.txt"
多个标签可写成("<string>Red</string>", "<string>Green</string>")格式。
2. 用第三方工具tag(需Homebrew安装)
先安装工具:
brew install tag
然后执行操作:
- 设置红色标签:
tag -a red "/Users/xxxxxx/test_file.txt"
- 将绿色标签改为红色(先移除绿色,再添加红色):
tag -r green -a red "/Users/xxxxxx/test_file.txt"
- 查看文件当前标签:
tag -l "/Users/xxxxxx/test_file.txt"
三、解决Hazel/Keyboard Maestro无法设置标签的问题
同样是权限原因,打开「系统设置」→「隐私与安全性」→「完全磁盘访问权限」,给Hazel和Keyboard Maestro勾选权限,重启应用后即可正常使用。
内容的提问来源于stack exchange,提问作者Ken
相关产品推荐
相关产品推荐

