如何在windows和linux上制作文件的完整备份副本



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

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

我如何在linux和windows上做到这一点?

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

在窗口上是:

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

在Linux上是:

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

有很多问题,例如:

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

更不用说一些策略了,这些策略可能是由gnome在Linux中创建的,或者是由applocker在Windows中创建的。

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

你的工作是根据你真正需要的以及你可以留给系统默认值的内容来处理上面提到的所有情况(以及更多情况)。

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

最新更新