Exe*_*n-G 180 backup compression
最近,我一直在备份我的很多数据,我注意到我可以将文件保存为.gz
or .tar.gz
、 or.7z
和.tar.7z
等等。普通版和.tar.*
变体版有什么区别?备份时建议使用其中的哪一个?
gei*_*rha 212
如果您有 Windows 背景,您可能熟悉 zip 和 rar 格式。这些是压缩在一起的多个文件的档案。
在 Unix 和类 Unix 系统(如 Ubuntu)中,归档和压缩是分开的。
tar
将多个文件放入一个 (tar) 文件中。gzip
压缩一个文件(仅)。因此,要获得压缩档案,请将两者结合起来,首先使用tar
或pax
将所有文件放入一个文件 ( archive.tar
) 中,然后使用gzip
它 ( archive.tar.gz
)。
如果您只有一个文件,则需要压缩 ( notes.txt
): 不需要tar
,因此您只需执行gzip notes.txt
这将导致notes.txt.gz
. 还有其他类型的压缩,例如compress
,bzip2
和xz
其工作在相同的方式gzip
(除了使用不同类型的过程的压缩的)。
Sau*_*Don 54
这取决于您正在寻找什么...压缩或存档?
当我谈论归档时,我的意思是保留权限、目录结构等...
压缩可能会忽略大部分内容,而只会将您的文件放入较小的包中。
要保留文件权限,请使用 tar:
tar cpvf backup.tar folder
Run Code Online (Sandbox Code Playgroud)
p 标志将保存文件权限。使用 z 标志进行 gzip 压缩或使用 j 标志进行 bzip 压缩。
tar czpvf backup.tar.gz folder #backup.tgz is acceptable as well
tar cjpvf backup.tar.bz2 folder #backup.tbz2 works too
Run Code Online (Sandbox Code Playgroud)
如果你想要一个 tar 文件,你可以使用 P 标志“更新”打包 tar:
tar cpPvf backup.tar folder
Run Code Online (Sandbox Code Playgroud)
然后更新,用“u”替换“c”,解包时,你可以使用“k”来保留已经存在的文件。
tar upPvf backup.tar folder #updating a tar file
tar xpPkvf backup.tar #extracting a tar with permissions(p) and not extracting(k) files that exist on disk already
Run Code Online (Sandbox Code Playgroud)
P 标志使用完整路径保存文件,因此 - /home/username 与 home/username (注意前导正斜杠)。
7z 压缩提供更大的压缩,但不保留文件所有权、权限等。Rzip 是另一种压缩实用程序,它也提供与 7z 相当的压缩。
我猜一个 backup.tar.7z 文件只是一个由 7z 文件压缩的 tar 文件(具有权限),但如果发生很少的压缩我不会感到惊讶,因为 7z 可能无法转储文件元数据。7z 能够排除文件元数据,它可以提供出色的压缩(当然还有其他功能)。
压缩也完全取决于数据类型。一些文件不能很好地压缩,因为它们可能已经用其他方式压缩过(例如,.mp3、.jpg、.tiff/with lzma、.rpm 等)。
小智 8
它的不同压缩风格,tar 本身只是简单地存档(几乎没有压缩)。tar.gz 是 tar 存档,但内容由 gzip(中等压缩)压缩,因此 .gz 和 tar.7z 使用 7zip 压缩(通常是超高压缩率)
备份时我会推荐 tar.7z,因为它具有最高的压缩率,可以节省您的空间,但使用额外的程序 (7zip)。.tar.gz 将是更大的文件并做同样的工作,你也可以使用 bzip (.tar.bz/bz2) 虽然我不确定这是否更适合你,因为我使用 gzip 或 7zip
通常,*.tar 文件只是由 tar 程序创建的 tar 文件,*.gz 程序由 gzip 创建,*.tar.gz(有时也称为 *.tgz)是 gzip 压缩的 tar 文件,而 *.7z 由 7zip 创建。
然而,在 Linux/Unix 中,人们几乎可以按照自己的意愿命名文件,因此完全由文件创建者自行决定。
Tar(磁带归档器)传统上被用作 Unix/Linux 中的容器来打包文件以供移动。它打包文件结构并维护文件属性,但不压缩文件。
压缩程序压缩文件以使其更小,但它们可能无法处理多个文件,和/或它们可能无法处理 Linux 所需的文件属性。由于 tar 已经存在并且得到了良好的支持,因此归档程序没有理由重复此功能,这是特定于平台的(Windows 和 Linux 不同)。此外,不同的压缩程序可能对不同类型的文件执行不同的操作,因此需要有多个选择。