最强大的档案格式是什么?

最强大的档案格式是什么?

我想备份一些包含我很少需要访问的文档的旧文件夹。为此,我想将它们全部放在一个存档中。由于这将是备份,因此格式应该适合此目的。因此,底线是:

哪一种是 Ubuntu 中最可靠/最强大的存档格式?

答案1

视情况而定。最受欢迎的两个选项是 tarball 和 zip 文件,但它们都存在以下缺陷:

  • .tar 磁带档案是大多数 Linux 用户非常流行的选项。它保留 UNIX 文件权限(这对于备份很重要)和硬链接。我测试过的每个 Linux 发行版都支持它,以及一些 Windows 程序,例如7-zip。然而,tar 在备份用例方面有几个限制和缺点,因为Duplicity 开发人员解释。它可能非常慢:即使要获取存档中存储的文件名列表,也必须读取整个存档。它也无法处理某些较新的文件系统所具有的详细元数据。
  • .zip 压缩文件既可用作存档,又可用作压缩格式。为了提高速度,您可以完全禁用压缩。Zip 文件比磁带存档更好,因为它们存储了一种目录,允许程序快速跳转到需要提取的特定文件。它还存储每个文件内容的校验和,以便轻松检测文件损坏。Zip 文件非常流行,但不幸的是,它们不适合 Linux 备份,因为它们不存储简单的文件权限。

遗憾的是,这里还有另外两个同样缺乏的选项:

  • .7z 7z 压缩档案具有一些出色的功能,例如加密和支持非常大的文件。不幸的是,它不存储 UNIX 文件权限,因此不适合 Linux 备份。
  • .ar 经典 UNIX 档案是 tar 档案的前身,并且具有与 tar 档案相同的限制。

在我看来,对于 Linux 备份,没有完全强大的备份存档格式,无论如何,没有一种格式足够知名以值得我的信任。

克服每种格式的局限性的一种方法是将它们组合起来:例如,将每个文件单独存档在 tar 存档中,然后将所有这些 tarball 存档在一个 zip 文件中。

如果您想要一个真正强大的备份,您可能应该研究这些解决方案:

  • 直接备份到外部硬盘上,源和目标上的文件系统相同。这可确保您将按预期存储每个文件的权限和元数据。(顺便说一句,文件的所有者和组所有者使用其用户 ID 和组 ID 号存储,而不是使用其名称。)

  • 使用全磁盘映像和克隆软件,例如克隆Zilla。您无法从这些备份中检索任何文件,但您可以绝对确信您已保存了所有可能保存的内容。

请记住,永远记住:只有尝试恢复备份,才能对备份充满信心。如果情况变得最糟,源硬盘完全被毁,您能将需要恢复的所有内容恢复到新硬盘吗?它会像您预期的那样工作吗?尝试将备份恢复到新硬盘,并尝试使用该硬盘运行几天。如果您发现缺少任何东西,您就知道您的备份不够彻底。

还要考虑将备份保存在哪里。您至少需要一些与源磁盘不在同一栋建筑中的备份,以防被盗或被火烧毁。一些选择是云或朋友的家。

答案2

tarball(.tar文件)是最佳选择。使用gzip压缩格式压缩率较低,但速度较快。bzip2速度较慢但压缩率较高。但对于二进制数据,差别不大。

使用 gzip 压缩来压缩目录的命令:

tar czf /path/to/save/backup.tar.gz directory-to-backup

要提取 gzip 压缩的 tarball 同时保留文件权限:

tar xzpf /path/to/save/backup.tar.gz

z用替换jbzip2 压缩,并v在 v 之前添加(例如czvfxzpvf)以在存档/提取文件名时打印它们。

答案3

我选择 7zip ( sudo apt-get install p7zip-full)。在我看来,它看起来是一个理想的压缩归档程序。

我不喜欢经典的 tarball,因为它们很笨重,因为必须解压缩整个 tar 文件(这可能在后台发生,但仍然会发生)才能查看档案的目录。

答案4

Gzip 压缩包 (.tar.gz、.tgz),Linux 归档标准。您不会出错。

我这辈子从来没有遇到过损坏甚至麻烦的 .tar.gz 存档。在 FlatmateRooms,我们使用它来存档服务器上的数十万张图片和所有备份。

相关内容