2

我想使用属于它的所有元数据制作文件的真实备份副本。

我正在搜索 lib 并找到了 shutils但它并没有复制所有的元数据。

我怎样才能在linux和windows上做到这一点?

4

2 回答 2

0

在 Windows 上,您可以使用 win32file.BackupRead 和 BackupWrite 复制所有元数据、备用数据流、安全描述符、扩展属性等。

于 2012-10-01T19:30:58.923 回答
0

第一个问题是每个文件系统(每个家庭 ext*、fat*...)和每个系统都有自己的元数据。

Windows 上是

  • 所有者
  • 文件属性(存档,只读)
  • 安全属性
  • 共享属性
  • 也许有些锁,天知道是什么

在 Linux 上是:

  • mod ( chmod 0755, 用tar保存)
  • 所有者
  • 团体
  • selinux 上下文(在某些系统上)

有很多问题,例如:

  • 如果用户不存在怎么办
  • 如果计算机上没有启用 selinux 怎么办
  • 如果不允许共享怎么办
  • 如何处理从 Windows 到 Linux 的转换(反之亦然)

更不用说一些可能由 Linux 中的 gnome 或 Windows 中的 applocker 创建的策略。

因此,要回答您的问题:没有简单的方法可以备份适用于所有系统的所有元数据(二进制文件系统副本除外)。

您的工作是根据您真正需要什么以及您可以保留其系统默认值来处理上述所有情况(以及更多情况)。

于 2012-10-01T14:10:46.110 回答