忍受我,这是漫长而复杂的,但TL; DR OSX隐藏在文件上的额外属性(共享或本地)?
我们在企业环境中遇到问题。 我们有一个Oracle ZFS安装程序,我们的OSX机器是SMB安装卷。
用户试图在位置之间移动文件夹,并在中途取消,导致两个位置的文件夹变灰。 在Finder中它显示了一个创build和修改date06/13/1943 06:13:00文件夹从我们的Linux工作站,当我们统计文件,它显示正确的创build和修改date。 然后,我们从Linux工作站或OSX工作站触摸文件,并通过terminal,我们可以看到该文件夹,甚至使用该文件夹上的打开命令。 但通过Finder,它保持灰色,无法打开。 这影响了访问这个文件的所有OSX工作站。 他们都没有看到,但Windows和Linux都很好。
我们最终使用了弃用的GetFileInfo和SetFile命令来解决这个问题。
我对社区的问题是,这些属性在哪里存储,因为它们在文件中使用ls -la或stat不可见。 但是当我们用GetFileInfo查看它的时候。 有没有人知道如果OSX做一些奇怪的Sambacaching并将其存储在服务器上? 或把这个在一个愚蠢的.DS_Store文件?
帮帮我!!! PLZ
OS X有几种方法可将其额外的元数据存储在本地不支持的卷上:
对于像FAT卷这样的东西,它将使用AppleDouble格式将元数据作为单独的文件存储,并在文件名中以“._”作为前缀。 例如,如果原始文件是“somefile.txt”并将其复制到FAT32卷,则数据将被复制到“somefile.txt”,元数据将被保存为“._somefile.txt”。
在通过SMB安装的NTFS卷上(如果某些条件我不完全了解适用),它会将元数据存储为NTFS备用数据stream 。
我不确定你的Oracle服务器的SMB实现是否支持备用数据stream,但是我猜测它是这样做的,而且Mac正在使用它们来存储额外的元数据(并且服务器可能将它们存储为ZFS扩展属性)。 您可以直接在服务器上查找它们,也可以尝试从Windows客户端挂载卷并查看streams.exe是否可以看到它们。