OSX:不同OSX版本号的标记可能不兼容

Posted blfbuaa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OSX:不同OSX版本号的标记可能不兼容相关的知识,希望对你有一定的参考价值。

现象:

依据測试,中文OS X 10.9和中文10.10的文件标记彼此不兼容。

也就是说。比方在10.9中的颜色标记,在10.10DP2中不能删除,但能够加入/删除10.10自己的颜色标记,反之亦然。

參见下图。目录admin有两个红色标记,当中在后面被挡住的是10.9.4建立的,在10.10DP2中,能够加入/删除10.10自己的标记。

技术分享


分析:

详细是什么原因造成的呢?

首先我们须要一个命令行工具,叫做tag。通过这个命令能够查看标记的情况-它不是操作系统内置的。是第三方工具。

我们再来如果一个场景,首先我们在10.10里面给/Users/admin目录加入两个标记。一个红色,一个灰色;然后再到10.9中给它加入另外一个颜色,黄色。

然后执行tag命令来查看它的标记:

$ tag -l /Uses/admin
/Users/admin Yellow,红色,灰色

假设没有再给它加入一个红色,那么命令执行结果是:

$ tag -l /Uses/admin
/Users/admin Red,Yellow,红色,灰色


在10.9中,各种颜色标记使用的是英文, Red和Yellow等,而在10.10中,使用的是中文, 红色和灰色等。把10.10改为English界面,又一次启动,读取的标记依旧是中文的。也就是说它把第一次的语言设置作为自己的语言类型。尽管意思一样,只是对于软件本身来说却不认识。由于明显他们不一样。这些标记记录在文件/目录的metadata中。

这个应该是一个软件bug, 一般来说内部系统在处理文件属性的时候应该以原始内码存储,Mac通常是UTF-8编码的英文,而不应该随界面语言文字的改变而变化,象如今这样,就出现了不兼容的问题。


解决方式:

假设不是为了測试,最好等待OS X Yasemite 10.10的正式版出来,再尝试新奇。

假设已经发生,假设标记不太重要。那么就吧标记清空。

使用以下命令:

xattr -c /the/path/to/your/file

把当中的/the/path/to/your/file替换成你要清除标记的文件/文件夹文件夹


假设要清除目录里面的全部文件标记,能够加上-r,如:

xattr -c -r /the/path/to/your/file

最后,使用第三方的命令行来处理。

比方

tag -r 红色,灰色 /Users/admin












以上是关于OSX:不同OSX版本号的标记可能不兼容的主要内容,如果未能解决你的问题,请参考以下文章

OSX 应用程序的向后兼容性

OSX 上的 Swift 与 iOS 版本不同吗?

无法在 OSX / Python 3.9 上安装 pyarrow:这是我还是不兼容的包?

当新的 API 出现时,构建一个向后兼容的 OS X 应用程序?

在旧版 OS X 上的 OS X10.6.4 上开发的软件包的兼容性问题

MAC OSX操作系统的简介