我想用我很少需要访问的文档备份一些旧文件夹。为此,我想将它们全部放在一个档案中。由于这将是备份,因此格式应适合该目的。所以,底线:
哪一种是 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。您无法从这些备份之一中检索一个文件,但您可以绝对确定您已经保存了所有可能的内容。
请记住,永远记住:只有在尝试恢复备份时,您才能对备份充满信心。如果最坏的情况出现并且您的源硬盘驱动器被完全破坏,您能否将恢复到新硬盘驱动器所需的一切恢复?它会按您的预期工作吗?尝试将您的备份恢复到新硬盘,并尝试从该硬盘运行几天。如果您发现有任何遗漏,您就知道您的备份不够彻底。
还要考虑在哪里保存备份。您至少需要一些与源磁盘不在同一建筑物中的备份,以保护自己免遭盗窃或火灾。一些选择是云或朋友的房子。
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)
更换z用j的压缩bzip2的添加vV(例如之前czvf和xzpvf他们是存档/提取)来打印文件名。
我选择 7zip ( sudo apt-get install p7zip-full)。从我的角度来看,它看起来像是一个理想的压缩归档程序。
我不喜欢经典的 tarball,因为它们笨拙,因为整个 tar 文件都需要解压缩(这可能在幕后发生,但仍然会发生)只是为了查看档案的目录。