Answers:
如果您来自Windows背景,则可能熟悉zip和rar格式。这些是压缩在一起的多个文件的存档。
在Unix和类似Unix的系统(如Ubuntu)中,归档和压缩是分开的。
tar
将多个文件放入一个(tar)文件中。
gzip
压缩一个文件(仅)。
因此,要获得压缩的存档,可以将两者结合起来,首先使用tar
或pax
将所有文件放入一个文件(archive.tar),然后再将gzip
其存档(archive.tar.gz)。如果你只有一个文件,你需要压缩(notes.txt),没有必要对焦油,所以你只是做gzip notes.txt
这将导致notes.txt.gz
。还有其他类型的压缩,例如compress
,bzip2
和xz
其中以相同的方式如gzip的工作(除了使用不同类型的过程的压缩的)
这取决于您要寻找的内容...压缩还是归档?
当我谈论归档时,我的意思是保留权限,目录结构等。
压缩可能会忽略大多数情况,只是将文件放在较小的程序包中。
要保留文件权限,请使用tar:
tar cpvf backup.tar folder
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
如果您想要一个tar文件,可以使用P标志“更新”打包tar:
tar cpPvf backup.tar folder
然后进行更新,将“ c”替换为“ u”,然后在解压缩时,可以使用“ 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
P标志保存具有完整路径的文件,因此-/ home / username vs home / username(注意前导斜杠)。
7z压缩可提供更大的压缩率,但不会保留文件所有权,权限等。Rzip是另一个压缩实用程序,它也可提供与7z相当的压缩率。
我猜一个backup.tar.7z文件只是一个由7z文件压缩的tar文件(具有权限),尽管如果压缩很少,我也不会感到惊讶,因为7z可能无法转储文件元数据。7z可以排除文件元数据,因此可以提供出色的压缩能力(当然还有其他事情)。
压缩也完全取决于数据类型。某些文件无法很好地压缩,因为它们可能已经通过其他方式进行了压缩(例如,.mp3,.jpg,.tiff /带有lzma,.rpm等)。
.7z
从多个文件中创建档案,而同时我也可以.tar.7z
从多个文件中创建档案呢?