我在 Finder 中有一个最初名为“foo”的文件。如果我为该文件“获取信息”,Finder 会将其识别为“种类:纯文本”。如果我将文件重命名为“foo.png”,Finder 会将其识别为“种类:便携式网络图形图像”。如果我将文件重命名为“foo”,Finder 仍会将其识别为“种类:便携式网络图形图像”(不是我预期的纯文本)。
Mac OS X 如何识别文件类型?
文件中的幻数通常是它的工作方式。例如,PNG 文件有一个标头来将其标识为 PNG,而不是其他文件格式。 维基百科有更多信息。
因为 *NIX 系统(如 Mac OS X)不依赖扩展来识别文件类型。它们依赖于一种叫做幻数的东西(如果我没记错的话),也就是说,它们搜索在这些类型的文件(例如标题、标签、元信息等)中发现的常见模式并识别它们。
我不知道它是如何工作的,但我可以想象,在你将文件重命名为foo.png
Finder 之前,我不知道也不关心它是什么类型。但是在你重命名它之后,Finder 将它的类型存储在某个地方(.DS_Store
也许?)和 inode ID,所以即使你再次重命名它,它也可以识别这个文件。