【问题标题】:MAC OS X alias folder/file do not persist on WindowsMAC OS X 别名文件夹/文件不会在 Windows 上保留
【发布时间】:2014-02-14 05:07:25
【问题描述】:

我有一个文件夹,并且在我的 MAC OS 桌面上创建了一个别名(快捷方式)。现在,当我将该别名从 MAC OS 复制到 Windows 时,它会向我显示一种文件类型为“文件”。

现在,如果我再次将该别名从 Windows 复制到 Mac OS,则该别名现在是 Unix 可执行文件 文件并且不是 别名。

我已尝试压缩该别名,但仍然遇到同样的问题。是否可以在 Windows 上保留 MAC 别名,当我将该别名复制回 Mac 时,它仍然是别名。

【问题讨论】:

  • 我只是好奇,这个有什么用例?
  • 实际上,我有我的 iOS 框架,其中包含别名......所以这会产生问题......
  • 您为什么希望它能够工作? Windows 不以与 Unix 兼容的方式进行符号链接(这是 Mac OS 的幕后黑手)。
  • @JimGarrison:但我希望如果我在 Windows 上复制符号链接并返回到 Mac OS,它将保持原样。但这不是行为
  • 您能否具体说明如何将文件从 Mac OS 复制到 Windows,反之亦然?

标签: linux macos unix terminal alias


【解决方案1】:

Mac 文件系统可以将多种元数据附加到其他文件系统(例如 Windows 使用的文件系统)不支持的文件中。根据文件在系统之间移动的确切方式,可能会或可能不会保留此元数据;如果丢失,文件可能无法使用。

在别名文件的情况下,有两个相关的元数据:类型代码(将文件标识为别名)和资源分支(在别名文件的情况下,存储关于在哪里的信息找到原始项目)。由旧版本的 OS X 创建的别名文件实际上根本没有常规内容(“数据分支”)——如果它们的元数据丢失,您将得到一个未知类型的空文件。较新的版本将原始项目信息存储在资源和数据叉中,因此如果资源叉丢失,它仍然可以使用;但如果类型代码丢失,操作系统不知道它是别名,它只会看到一些无法识别的数据(它误认为是 unix 可执行文件)。

在某些情况下,如果您使用正确的 OS X 工具将文件复制/移动到外部文件系统(不支持类型代码、资源分叉等),OS X 工具会将元数据编码并存储在一些替代形式:

  • 如果您使用 Finder 将文件复制到 FAT32 闪存驱动器,它将使用 AppleDouble 格式将元数据存储为名称带有“._”前缀的单独文件。如果你在 Windows 上看这个,你会看到例如“别名文件”和“._alias 文件”。只要这两个文件保存在一起,当它们回到 Mac 时,它会在逻辑上将它们重新组合成一个包含所有元数据的文件。

  • 如果您使用 Finder 创建 zip 存档,它将执行非常相似的技巧,将元数据存储为 zip 存档中的“._”文件(在 __MACOSX 子文件夹中);如果您使用 Finder(实际上是存档实用程序)扩展存档,它将重新组合文件。

    但 OS X 的命令行 zip 工具不支持这种 AppleDouble/"." 技巧。如果您使用zip 创建存档,它将简单地保留Mac 元数据,如果您在包含“.”文件的存档上使用unzip,它不会重新组合它们。如果您需要在命令行创建 zip 存档,ditto 实际上是要走的路。

  • 如果您使用 Finder 将文件复制到使用 NTFS 文件系统的 Windows 服务器,它将隐藏附加到文件的 alternate data stream(仅限 Windows 的高级元数据形式)中的元数据,如果您使用 Finder 将其复制回来,它将被正确重新组装。但是,如果您使用其他东西,或者以不保留备用数据流的方式移动/复制文件,它就会丢失。

【讨论】:

    猜你喜欢
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2014-08-21
    • 2013-11-10
    相关资源
    最近更新 更多