我有一个文件夹,并且在我的 MAC 操作系统桌面上创建了一个别名(快捷方式)。现在,当我将该别名从 MAC 操作系统复制到 Windows 时,它会显示一种文件类型为"file"。
现在,如果我再次将该别名从 Windows 复制到 Mac OS,那么该别名现在是 Unix 可执行 文件并且不是别名。
我已经尝试压缩那个别名,但仍然有同样的问题。是否可以在 Windows 上保留 MAC 别名,当我将该别名复制回 Mac 时,它仍然是别名。
最佳答案
Mac 文件系统可以将多种元数据附加到其他文件系统(例如 Windows 使用的文件系统)不支持的文件。取决于文件在系统之间移动的确切方式,此元数据可能会或可能不会被保留;如果丢失,文件可能无法使用。
在别名文件的情况下,有两个相关的元数据:类型代码(将文件标识为别名)和资源分支(在别名文件的情况下,存储关于在哪里的信息找到原始项目)。旧版 OS X 创建的别名文件实际上根本没有常规内容(“数据分支”)——如果它们的元数据丢失,您将留下一个未知类型的空文件。较新的版本将原始项目信息存储在资源和数据分支中,因此如果资源分支丢失,它仍然可用;但如果类型代码丢失,操作系统不知道它是一个别名,它只会看到一些无法识别的数据(它会将其误认为是 unix 可执行文件)。
在某些情况下,如果您使用正确的 OS X 工具将文件复制/移动到外部文件系统(不支持类型代码、资源分支等),OS X 工具会将元数据编码并存储在一些替代形式:
如果您使用 Finder 将文件复制到 FAT32 闪存驱动器,它会使用 AppleDouble 将元数据存储为名称带有“._”前缀的单独文件。格式。如果你在 Windows 上看这个,你会看到例如“别名文件”和“._别名文件”。只要这两个文件保存在一起,当它们回到 Mac 时,它就会在逻辑上将它们重新组合成一个包含所有元数据的文件。
如果您使用 Finder 创建 zip 存档,它会执行非常相似的技巧,将元数据存储为 zip 存档内的“._”文件(在 __MACOSX 子文件夹中);如果您使用 Finder(实际上是 Archive Utility)展开存档,它会重新组合文件。
但是 OS X 的命令行压缩工具不支持这个 AppleDouble/"."技巧。如果您使用
zip
来创建存档,它只会留下 Mac 独有的元数据,如果您使用unzip
来创建包含 ". 的存档"文件,它不会重新组合它们。如果您需要在命令行创建 zip 存档,ditto
实际上是要走的路。如果您使用 Finder 将文件复制到使用 NTFS 文件系统的 Windows 服务器,它会将元数据隐藏在 alternate data stream 中。 (一种仅限 Windows 的高级元数据形式)附加到文件,如果您使用 Finder 将其复制回来,它将被正确地重新组合。但是,如果您使用其他东西,或者以不保留备用数据流的方式移动/复制文件,它就会丢失。
关于linux - MAC OS X 别名文件夹/文件不会在 Windows 上保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21771273/