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

Ing*_*ngo 27 archive

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

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

Fli*_*imm 22

这取决于。两个最受欢迎的选项是 tarball 和 zip 文件,但它们都缺少:

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

遗憾的是,这里还有两个选项:

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

在我看来,Linux 备份没有完全强大的备份存档格式,没有一种众所周知的足以保证我信任的格式。

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

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

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

  • 使用全盘映像和克隆软件,如CloneZilla。您无法从这些备份之一中检索一个文件,但您可以绝对确定您已经保存了所有可能的内容。

请记住,永远记住:只有在尝试恢复备份时,您才能对备份充满信心。如果最坏的情况出现并且您的源硬盘驱动器被完全破坏,您能否将恢复到新硬盘驱动器所需的一切恢复?它会按您的预期工作吗?尝试将您的备份恢复到新硬盘,并尝试从该硬盘运行几天。如果您发现有任何遗漏,您就知道您的备份不够彻底。

还要考虑在哪里保存备份。您至少需要一些与源磁盘不在同一建筑物中的备份,以保护自己免遭盗窃或火灾。一些选择是云或朋友的房子。


Lek*_*eyn 9

tarball(.tar文件)将是要走的路。使用gzip压缩格式压缩较少,但速度不错。bzip2速度要慢得多,但提供了更好的压缩比。但是对于二进制数据,并没有太大的不同。

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

tar czf /path/to/save/backup.tar.gz directory-to-backup
Run Code Online (Sandbox Code Playgroud)

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

tar xzpf /path/to/save/backup.tar.gz
Run Code Online (Sandbox Code Playgroud)

更换zj的压缩bzip2的添加vV(例如之前czvfxzpvf他们是存档/提取)来打印文件名。

  • @psusi 对于 bzip2 来说不是这样,它以 ~1MB 的块压缩。看看`bzip2recover`。 (5认同)
  • 为了可靠性,您不需要压缩。压缩档案的任何损坏都将导致损坏点之后的所有内容丢失。 (4认同)

Iva*_*van 7

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

我不喜欢经典的 tarball,因为它们笨拙,因为整个 tar 文件都需要解压缩(这可能在幕后发生,但仍然会发生)只是为了查看档案的目录。


小智 5

尽管不太知名或广泛使用,但由于它单独压缩文件的方式,因此我倾向于使用afio,从而可以在损坏的情况下进行恢复。通过 aptitude 或类似方法安装。