有没有办法可以在终端中将文件的颜色标签设置为某种颜色?
我知道以下命令列出了有关当前颜色的一些信息,但我不知道该怎么做。比如改变它。
mdls -name kMDItemFSLabel somefile.ext
我想知道的原因是我想以递归方式用某种颜色标签(在我的情况下是灰色)标记某种类型的文件夹中的所有文件。
我知道如何进行发现:
find . -name "*.ext"
并且我知道如何使用对每个文件运行命令-exec
,但我需要知道如何进行实际标记......
我想要一个只涉及 Mac OS X 内置命令的解决方案。所以最好不要第三方的东西,除非没有其他办法。
答案1
根据此处和参考帖子的回复,我制作了以下函数并将其添加到我的 ~/.bash_profile 文件中:
# 设置 Finder 标签颜色 标签(){ 如果 [ $# -lt 2 ]; 那么 echo "使用方法:标签 [0-7] 文件 1 [文件 2] ..." echo“设置文件的 Finder 标签(颜色)” echo“默认颜色:” echo " 0 无颜色" 回显“ 1 个橙子” 回显“ 2 红色” 回显“ 3 黄色” 回显“4 蓝色” 回显“ 5 紫色” 回显“ 6 绿色” 回显“ 7 灰色” 别的 osascript-“$@”<< EOF 运行 argv 将 labelIndex 设置为(argv 中的项目 1 作为数字) 用 i 重复从 2 到 (argv 的数量) 告诉应用程序“Finder” 将 theFile 设置为 POSIX 文件(argv 中的第 i 项)作为别名 将文件的标签索引设置为 labelIndex 结束告诉 结束重复 结束运行 末梢血 菲 }>
答案2
osascript 方法在 Mavericks AppleScript 中似乎对我来说已经损坏(并且从那时起我就不需要尝试它们了),但是这个有效:
xattr -wx com.apple.FinderInfo \
"0000000000000000000C00000000000000000000000000000000000000000000" \
/path/to/your/file
(这会将文件标记为红色,您必须对其他颜色进行逆向工程)。
在 Mavericks 下,这似乎将文件标签与前一个标签合并(因为它们现在是“标签”)。
如果不太明显的话,这是问答并且将来可能会出现问题,但它至少可以在以下方面发挥作用(并且比 AppleScript 快得多):
- 10.9,HFS+
- 11.6,APFS
答案3
osascript -e “告诉应用程序 \”Finder\“ 将 POSIX 文件 (\”/junk.txt\“) 的标签索引设置为 1”