Mac OS X:如何从终端更改文件的颜色标签

Mac OS X:如何从终端更改文件的颜色标签

有没有办法可以在终端中将文件的颜色标签设置为某种颜色?

我知道以下命令列出了有关当前颜色的一些信息,但我不知道该怎么做。比如改变它。

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”

答案4

要在 Finder 中查看它们(我知道,不是您问的),您可以使用 xattr -l 或 xattr -p com.apple.FinderInfo,您会在零(1E)中获得一个标志,其中的低位是颜色..使用第三方的东西:调试(与 sudo 一起使用)获取大量信息,其中包括可读的彩色标签。

要使用第三方内容进行更改:osxutils有一个 setlabel 命令。

相关内容